Команда 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 используется в командных файлах, когда в зависимости от результата поиска заданного файла нужно выполнить ту или иную подпрограмму.