Ответ 1
Следующие работали для меня:
PS C:\Users\Bill> where.exe calc
C:\Windows\System32\calc.exe
При вводе where
в PS это не то же самое, что и выполнение where.exe
PS C:\Users\Bill> where <press ENTER>
cmdlet Where-Object at command pipeline position 1
Supply values for the following parameters:
Property:
Поэтому, когда вы вводите where calc
, он выполняет Where-Object calc
(псевдоним Where-Object
равен where
и ?
) и, таким образом, ничего не возвращает и не выполняет where.exe calc
.
Командлет Get-Command
(псевдоним gcm
) можно использовать вместо where.exe
. Вот пример функции, чтобы сделать функцию Get-Command
точно так же, как where.exe
. Если вы поместите это в свой профиль PowerShell, он всегда будет доступен в вашем сеансе.
function which ($command) {
Get-Command -Name $command -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}
Следующие ссылки могут быть полезны -
Эквивалент * Nix ', который' командует в Powershell?
https://superuser.com/info/34492/powershell-equivalent-to-unix-which-command
Надеюсь, что это поможет.