Включи где — команда операционных систем¶
«Включи где» (англ. where) — утилита командной строки в семействе операционных систем Microsoft Windows, предназначенная для поиска расположения исполняемых файлов в заданных директориях. Команда выполняет поиск файлов с указанным именем и расширениями .exe, .bat, .cmd, .com по каталогам, перечисленным в переменной окружения PATH, а также по дополнительным путям, переданным командной строке.
¶Назначение и принцип работы
Утилита where была введена в состав Windows начиная с Windows Vista и Windows Server 2008 и с тех пор входит во все актуальные версии системы. Она заменила собой более раннюю утилиту which, доступную в UNIX-подобных системах, и выполняет сходную задачу: определяет, какой исполняемый файл будет запущен при вводе определённой команды в оболочке.
Принцип работы заключается в следующем: при вызове where имя_файла утилита последовательно перебирает каталоги, перечисленные в переменной окружения PATH, и выводит полные пути ко всем найденным файлам с указанным именем. Если совпадений несколько (например, одноимённые утилиты присутствуют в разных каталогах), where выводит их все в порядке приоритета — от каталогов с более высоким приоритетом в PATH к менее приоритетным.
¶Синтаксис и параметры
Базовый синтаксис команды:
`` where [параметры] имя_файла [...] ``
Основные параметры:
| Параметр | Описание |
|---|---|
/R <корневой_каталог> | Рекурсивный поиск во всех подкаталогах указанного каталога |
/Q | Тихий режим: возвращает код выхода 0 при нахождении и 1 при отсутствии совпадений, без вывода путей |
/F | Вывод полных путей к файлам (поведение по умолчанию) |
/T | Вывод только имён найденных файлов без путей |
Имя файла может содержать подстановочные символы и ?, что позволяет выполнять поиск по маске. Например, where .txt выведет пути ко всем файлам с расширением .txt в каталогах из PATH.
¶Примеры использования
Поиск утилиты ipconfig:
`` C:\> where ipconfig C:\Windows\System32\ipconfig.exe ``
Поиск нескольких файлов за один вызов:
`` C:\> where notepad.exe cmd.exe C:\Windows\System32\notepad.exe C:\Windows\System32\cmd.exe ``
Рекурсивный поиск по всем подкаталогам диска C:\Tools:
`` C:\> where /R C:\Tools *.exe ``
Тихий режим, полезный в пакетных файлах для проверки наличия программы:
`` C:\> where /Q python.exe C:\> if %errorlevel%==0 (echo Python найден) else (echo Python не найден) ``
¶Отличие от команды which и where.exe в PowerShell
В UNIX-подобных системах (Linux, macOS) аналогом where является команда which, а также whereis и type. В Windows PowerShell также существует псевдоним where, связанный с cmdlet Where-Object, который выполняет совершенно другую задачу — фильтрацию объектов по условию. Для вызова именно утилиты where.exe в PowerShell необходимо указывать полное имя с расширением .exe либо использовать полный путь C:\Windows\System32\where.exe.
¶Коды возврата
Утилита возвращает код 0 при успешном нахождении хотя бы одного совпадения и код 1, если совпадений не найдено. Это делает where удобным инструментом для использования в пакетных файлах (.bat, .cmd) и скриптах автоматизации.
¶См. также
- PATH (переменная окружения)
- Командная строка Windows
- PowerShell
- which (Unix)
¶Источники
- Документация Microsoft: команда
where— Microsoft Learn - Windows Command Line Documentation — Microsoft TechNet
- Windows Server 2008 Command Shell Reference — Microsoft
