Примеры, когда пользователь помнит название файла, но забывает, куда именно он его положил, не такая уже и редкость. Найти затерявшийся среди множества других файлов нужный файл не составляет особой проблемы, другое делo, если файл нужно найти быстро. А это не всегда возможно, например, по причине отключенной индексации. В таких случаях могут выручить сторонние утилиты типа MasterSeeker, которые ищут по файловой таблице, но можно обойтись и без них.
С задачей быстрого поиска неплохо справляются командная строка и PowerShell.
Начнем с классической командной строки.
Для поиска в консоли CMD используется две основные команды: where и dir.
Способ с использованием первой команды не слишком быстрый, но все же он более быстр, чем поиск с использованием средств Проводника.
Выглядит команда следующим образом:
where /R C: log54.txt
В данном примере ищется файл log54.txt на диске C, поиск выполняется рекурсивно, в случае обнаружения файла команда возвращает полный к нему путь. Если файл отсуствует в выбранном расположении, команда вернет сообщение «не удается найти файлы по заданным шаблонам».
Поддерживается поиск с использованием замещающих символов, например, команда where /R C: *g54*.* станет искать файлы, в имени которых имеется «g54» независимо от расширения.
Быстрее where работает команда dir, выводящая не только путь к каталогу с искомым файлом, но и количество объектов в каталоге.
Выглядит команда так:
dir /a /s C:log54.txt
Обратите внимание, что между буквой диска, на котором выполняется поиск, и имением файла пробел не добавляется.
Как и в случае с where, поддерживается использование замещающих символов.
Поиск в PowerShell
Для поиска объектов файловой системы в PowerShell предусмотрен командлет ChildItem с ключом Recurse.
В случае поиска по системному диску в команду рекомендуется добавить специальный ключ, гасящий вывод ошибок доступа к системным файлам.
Вот так:
Get-ChildItem -Path C: «log54.txt» -Recurse -Force -ErrorAction SilentlyContinue
В случае успеха команда возвращает путь к папке с файлом, если файл не найден, ничего выведено не будет.
Разумеется, можно использовать подстановочные символы – звездочки в имени и расширении.
Как и при работе с командной строкой, поиск в PowerShell может занять много времени, но как правило, результат не заставляет себя ждать.