Поиск файлов в командной строке Windows

Поиск файлов в командной строке WindowsНачиная с Windows 7 в операционных системах от Microsoft можно использовать команду WHERE, чтобы найти нужные файлы.

Синтаксис команды where выглядит следующим образом:

WHERE [/R каталог_для_поиска] [/Q] [/F] [/T] [шаблон_для_поиска]

Разберём используемые в команде параметры.

R — рекурсивный поиск и отображение файлов, соответствующих указанному шаблону, начиная с указанного каталога;

Q — возврат только кода выхода без отображения списка найденных файлов («тихий режим»);

F — отображение имён найденных файлов в кавычках;

T — отображение размера, даты и времени изменения найденных файлов.

Пользоваться командой where просто. Но учитывайте, что нужно указывать расширение искомого файла. Либо использовать *, чтобы команда нашла файлы всех расширений с подобным именем.

Обратите внимание на скриншот ниже. Шаблона test команде where оказалось недостаточно. А вот когда мы написали test*, команда поняла, что после test может быть что угодно, в том числе и любое расширение.

Поиск файлов в командной строке Windows

Продолжаем. Вводим команду

where /t test*

и видим информацию о размере, дате и времени редактирования файла. В данном случае наш файл пуст.

Поиск файлов в командной строке Windows

Обратите внимание, что по умолчанию (без параметра R) поиск осуществляется в текущем каталоге и каталогах, заданных значением переменной среды PATH.

Это значит, что если мы хотим поискать на всём диске C, нам необходимо использовать следующую конструкцию:

where /r c:\ file_test*

Как видите, поиск выдал нам расположение двух файлов, содержащих в имени file_test.

Поиск файлов в командной строке Windows

Если нам лучше известно местоположение искомого файла, мы можем сузить зону поиска, указав каталог:

where /r c:\mega file_test*

Поиск файлов в командной строке Windows

Конечно, мы можем поискать все файлы с одним определённым расширением:

where /r c:\mega *xlsx

Поиск файлов в командной строке Windows

Можно использовать знаки вопроса, которые означают, что символ может быть любым. Их отличие от звёздочки в том, что звёздочка не регламентирует число символов, а количество знаков вопроса строго увязано с числом символов.

Ниже пример: сперва мы использовали конструкцию ??le_test*, и команда поняла, что первые два символа могут быть любыми, потом должно идти «le_test», а дальше любые символы. Под этот шаблон подходит file_test.xlsx. А вот под шаблон ?le_test* он уже не подходит. Так как в этом шаблоне перед «le_test» стоит всего один любой символ.

Поиск файлов в командной строке Windows

Может ли шаблон содержать сразу несколько разных имён файлов или несколько разных расширений? Может! Как видно на скриншоте ниже, сначала мы поискали файлы с расширениями .xlsx и .txt, а затем файлы, в имени которых содержится file_test или test. В обоих случаях команда where нашла такие файлы.

Поиск файлов в командной строке Windows

Пример использования параметра F (добавляет кавычки):

where /f /r c:\mega file_test* test*

Поиск файлов в командной строке Windows

Пару слов о параметре Q. Как уже было сказано, он используется для того, чтобы не отображать месторасположение файлов. При использовании параметра Q команда where просто выведет результаты поиска — найдены искомые файлы или нет. Для вывода результата команда использует переменную ERRORLEVEL, которая может принимать три значения:

0 — искомые файлы найдены;

1 — искомые файлы не найдены;

2 — во время поиска произошла ошибка.

Как видите, файл test.txt в каталоге c:\mega есть, а файла test.pdf нет.

Поиск файлов в командной строке Windows

Возможно, кому-то станет интересно, какое значение примет переменная ERRORLEVER, если одновременно поискать присутствующий и отсутствующий файлы. Она примет значение 0, и это не зависит от порядка написания имён файлов.

Поиск файлов в командной строке Windows

Обычно параметр Q используют в командных файлах, когда в зависимости от результатов поиска нужно выполнить то или иное действие.

И, конечно, результаты поиска можно перенаправить в файл:

where /r c:\ file_test* > c:\search_results.txt

Как видите, команда where это довольно мощный инструмент для поиска файлов в Windows.

Добавить комментарий

Ваш адрес email не будет опубликован.