47

В Linux у нас есть команда which для поиска пути к исполняемому файлу.
Каков его эквивалент Windows? Есть ли какая-либо команда PowerShell для этого?

4 ответа4

49

Некоторые версии Windows (я думаю, что Windows 2003 и выше) имеют команду where:

c:\>where ping
C:\Windows\System32\PING.EXE
23

Да, Get-Command найдет все команды, включая исполняемые:

PS\> Get-Command ipconfig

Если вы хотите ограничить команды только исполняемыми файлами:

PS\> Get-Command -CommandType Application

Найдет всех бывших на вашем пути. Существует псевдоним для интерактивного использования:

PS\> gcm net* -CommandType Application

Чтобы получить путь к исполняемому файлу, вы можете использовать свойство Path возвращаемого объекта. Например:

PS\> (Get-Command notepad.exe).Path

Для получения дополнительной информации, запустите man Get-Command -full .

2

В дополнение к user10404 команда help будет работать с псевдонимами, поэтому вы можете использовать то же имя команды (gcm) для справки и интерактивного использования:

help gcm -Parameter *
# or
man gcm -Par *
1

Если вы хотите сделать его коротким, создайте файл с одной строкой which.cmd с содержимым

echo %~$PATH:1

Будет выполнен поиск первого параметра (% 1), переданного в сценарий, и будет показан полный путь к найденному файлу. Хорошее место для размещения этого скрипта в Windows 10 - это% LOCALAPPDATA%\Microsoft\WindowsApps\which.cmd

И вы получите вашу команду в пути.

c:\>which cmd.exe

c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .