Команда WHERE используется для определения расположения файлов в каталогах операционных систем Windows 7 и старше, имена которых соответствуют задаваемому шаблону поиска, а также, при необходимости — размера, даты и времени их изменения. По умолчанию поиск выполняется в текущем каталоге и в каталогах, определяемых значением переменной среды PATH.

1. Описание команды WHERE.

1.1. Формат командной строки:

C:\ WHERE [/R каталог] [/Q] [/F] [/T] шаблон...

1.2. Параметры командной строки:

  • /R — Рекурсивный поиск и отображение файлов, соответствующих указанному шаблону, начиная с указанного каталога.
  • /Q — Возврат только кода выхода без отображения списка найденных файлов (тихий режим)
  • /F — Отображение имен найденных файлов в кавычках.
  • /T — Отображение размера, даты и времени изменения для всех найденных файлов.
  • шаблон — Шаблон поиска для искомых файлов. В шаблоне можно использовать подстановочные знаки * и ?. Также можно задавать конструкции «$пер:шаблон» и «путь:шаблон», где «пер» представляет переменную среды, и поиск осуществляется по путям, указанным в переменной среды «пер». Эти конструкции не следует использовать с параметром /R. При поиске к шаблону также добавляются расширения из переменной PATHEXT. Пример: WHERE «c:\windows;c:\windows\system32:*.dll»
  • /? — Вывод справки по использованию.

WHERE.EXE возвращает код ошибки 0, если поиск был успешным, 1 — если безуспешным, и 2, если возникли ошибки.

2. Примеры использования команды WHERE.

2.1. Выдать краткую справку по использованию команды:

C:\ WHERE /?

2.2. Найти расположение файла myfile.doc:

C:\ WHERE myfile.doc

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

2.2. То же, что и в предыдущем случае, но в результатах поиска отображается размер, дата и время изменения файла:

C:\ WHERE /T myfile.doc

2.3. Найти расположение файла myfile.doc:

C:\ WHERE /R C:\ myfile.doc

Поиск выполняется рекурсивно, начиная с корневого каталога диска C: ( поиск по всему диску C: ).

2.4. Поиск файлов с расширением log начиная с подкаталога system32 системного каталога Windows:

C:\ WHERE /R %windir%\system32 *.log

2.5. Поиск файлов с расширением log начиная с подкаталога system32 системного каталога Windows с записью результатов в текстовый файл loglist.txt текущего каталога:

C:\ WHERE /R %windir%\system32 *.log > loglist.txt

2.6. Поиск с использованием шаблона, где первые 3 символа имени файла могут быть любыми (???, следующие 3 символа принимают значение dir и с любым расширением:

C:\ WHERE /R C:\ ???dir.*

2.7. Поиск исполняемых файлов, в имени которых содержится символ «7» , начиная с каталога C:\windows\system32:

C:\ where /R C:\windows\system32 *7*.exe

2.8. Поиск файлов сценариев ( скриптов ) — файлов с расширением vbs, cmd и bat начиная с каталога C:\windows:

C:\ WHERE /R c:\windows *.vbs *.cmd *.bat

2.9. Не отображать результат поиска:

C:\ WHERE /Q file1.ext

При выполнении этой команды будет установлено значение переменной ERRORLEVEL в зависимости от результата поиска:

  • ERRORLEVEL=0 — файл file1.ext найден.
  • ERRORLEVEL=1 — файл file1.ext не найден.
  • ERRORLEVEL=2 — при поиске файла file1.ext возникла ошибка.

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