Некоторые версии Windows (я думаю, что Windows 2003 и выше) имеют команду where:
c:\>where ping C:\Windows\System32\PING.EXE
В Linux у нас есть команда which для поиска пути к исполняемому файлу.
Каков его эквивалент Windows? Есть ли какая-либо команда PowerShell для этого?
Некоторые версии Windows (я думаю, что Windows 2003 и выше) имеют команду where:
c:\>where ping C:\Windows\System32\PING.EXE
Да, 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
.
В дополнение к user10404 команда help будет работать с псевдонимами, поэтому вы можете использовать то же имя команды (gcm) для справки и интерактивного использования:
help gcm -Parameter * # or man gcm -Par *
Если вы хотите сделать его коротким, создайте файл с одной строкой 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