63

Есть ли в PowerShell эквивалент команды which найденной в большинстве (если не во всех) оболочках Unix?

Несколько раз я хотел бы узнать местоположение чего-то, что я запускаю из командной строки. В Unix я просто делаю, which <command> , и это говорит мне. Я не могу найти эквивалент в PowerShell.

4 ответа4

65

Об этом спрашивали и отвечали на переполнение стека: эквивалент * Nix 'какая команда' в PowerShell?

Самым первым псевдонимом, который я сделал, когда начал настраивать свой профиль в PowerShell, было «которое».

New-Alias, который получает команду

Чтобы добавить это в свой профиль, введите:

"` nNew-Alias, который получает команду "| add-content $ профиль

`N в начале последней строки означает, что она будет начинаться как новая строка.

29

Начиная с PowerShell 3.0, вы можете сделать

(Get-Command cmd).Path

Который также имеет преимущество перед ванильной Get-Command при возврате System.String так что вы получите чистый * nixy однострочный вывод, к которому вы привыкли. Используя псевдоним gcm, мы можем уменьшить его до 11 символов.

(gcm cmd).Path
6

Также ответили в 2008 году: есть ли эквивалент «который» в командной строке Windows?

Попробуйте команду where если вы установили Resource Kit.

Наиболее важные части ответа:

Windows Server 2003 и более поздние версии предоставляют команду WHERE которая выполняет некоторые действия, хотя и соответствует всем типам файлов, а не только исполняемым командам.

[Надрез]

В Windows PowerShell вы должны ввести where.exe .

3
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}

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