Что Windows эквивалентно команде "what" в Unix? Есть ли эквивалентная команда PowerShell?

24928
Scott

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

45
Смотрите также http://stackoverflow.com/questions/304319/is-there-an-equivalent-of-which-on-the-windows-command-line ysap 9 лет назад 0
[Есть ли эквивалент «который» в командной строке Windows?] (Http://stackoverflow.com/q/304319/995714) phuclv 8 лет назад 0

4 ответа на вопрос

47
Randy Levy

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

c:\>where ping C:\Windows\System32\PING.EXE 
`где` работа у меня в Windows 7 Nam G VU 13 лет назад 4
Это работает только в cmd, а не в PowerShell (по моему опыту) Thomas 10 лет назад 2
`where / rc: \ fileName` добавление / rc: \ позволило мне выполнить рекурсивный поиск, начиная с корня диска C с помощью Windows 7 Professional, который, по-видимому, отсутствует в https://access.redhat.com/documentation. /en-US/Red_Hat_Enterprise_Linux/4/html/Step_by_Step_Guide/ap-doslinux.html CrandellWS 9 лет назад 0
в Powershell вы должны сказать `where.exe ping`, потому что` where` по умолчанию имеет псевдоним командлета `Where-Object`, что совершенно другая история maoizm 6 лет назад 0
23
user10404

Да, 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
yzorg

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

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

Если вы хотите сделать его коротким, создайте файл с одной строкой 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