Особенности команды
· Следует учитывать тот факт, что find не способна распознать знаки перевода строки. Таким образом, если между искомыми словами для поиска находится подобный символ, они не станут указываться при выдаче результатов.
· Когда одновременно используются /c и /n, происходит пропуск /n – он просто будет игнорироваться.
· Допускается устанавливать для параметров и ключей в данной команде любую последовательность. Это не окажет влияния на результат.
· В случае отсутствия названия файла, данная команда начнет работать аналогично фильтру. Предусматривается осуществление ввода на основании стандартных источников вывода.
Поиск файлов в командной строке windows | вебисторий
Начиная с Windows 7 в операционных системах от Microsoft можно использовать команду WHERE, чтобы найти нужные файлы.
Синтаксис команды where выглядит следующим образом:
WHERE [/R каталог_для_поиска] [/Q] [/F] [/T] [шаблон_для_поиска]
Разберём используемые в команде параметры.
R — рекурсивный поиск и отображение файлов, соответствующих указанному шаблону, начиная с указанного каталога;
Q — возврат только кода выхода без отображения списка найденных файлов («тихий режим»);
F — отображение имён найденных файлов в кавычках;
T — отображение размера, даты и времени изменения найденных файлов.
Пользоваться командой where просто. Но учитывайте, что нужно указывать расширение искомого файла. Либо использовать *, чтобы команда нашла файлы всех расширений с подобным именем.
Обратите внимание на скриншот ниже. Шаблона test команде where оказалось недостаточно. А вот когда мы написали test*, команда поняла, что после test может быть что угодно, в том числе и любое расширение.

Продолжаем. Вводим команду
where /t test*и видим информацию о размере, дате и времени редактирования файла. В данном случае наш файл пуст.

Обратите внимание, что по умолчанию (без параметра R) поиск осуществляется в текущем каталоге и каталогах, заданных значением переменной среды PATH.
Это значит, что если мы хотим поискать на всём диске C, нам необходимо использовать следующую конструкцию:
where /r c: file_test*Как видите, поиск выдал нам расположение двух файлов, содержащих в имени file_test.

Если нам лучше известно местоположение искомого файла, мы можем сузить зону поиска, указав каталог:
where /r c:mega file_test*
Конечно, мы можем поискать все файлы с одним определённым расширением:
where /r c:mega *xlsx
Можно использовать знаки вопроса, которые означают, что символ может быть любым. Их отличие от звёздочки в том, что звёздочка не регламентирует число символов, а количество знаков вопроса строго увязано с числом символов.
Ниже пример: сперва мы использовали конструкцию ??le_test*, и команда поняла, что первые два символа могут быть любыми, потом должно идти «le_test», а дальше любые символы. Под этот шаблон подходит file_test.xlsx. А вот под шаблон ?le_test* он уже не подходит. Так как в этом шаблоне перед «le_test» стоит всего один любой символ.

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

Пример использования параметра F (добавляет кавычки):
where /f /r c:mega file_test* test*
Пару слов о параметре Q. Как уже было сказано, он используется для того, чтобы не отображать месторасположение файлов. При использовании параметра Q команда where просто выведет результаты поиска — найдены искомые файлы или нет. Для вывода результата команда использует переменную ERRORLEVEL, которая может принимать три значения:
0 — искомые файлы найдены;
1 — искомые файлы не найдены;
2 — во время поиска произошла ошибка.
Как видите, файл test.txt в каталоге c:mega есть, а файла test.pdf нет.

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

Обычно параметр Q используют в командных файлах, когда в зависимости от результатов поиска нужно выполнить то или иное действие.
И, конечно, результаты поиска можно перенаправить в файл:
where /r c: file_test* > c:search_results.txtКак видите, команда where это довольно мощный инструмент для поиска файлов в Windows.
Расшифровка значений
Позволяет выдать на экран все строки, которые не включают требуемую настройками поиска строку.
Подсчет общего количества совпадений.
Позволяет выдавать строки в таком формате, чтобы перед ними ставились их номера.
При выполнении поисков не происходит различий между строчными и заглавными символами.
“строка_для_поиска”
Требуется указать то, что именно необходимо найти в документе или документах.
[диск_компьютера:][путь]название_файла
Указываются все файлы, в которых должен происходить поиск. Требуется обеспечить точное предоставление сведений для команды об их местоположении на жестких дисках устройства.
Синтаксис
find [/v] [/c] [/n] [/i] “строка_для_поиска” [[диск_компьютера:][путь]название_файла[…]]
Выводы
Данный bat файл, универсален, удобен в использовании, но есть одно, НО!
Условия поиска нужно вводить вручную, и путь где искать




