当我where在 CMD 中运行时,我得到输出:
C:\Users\Ragesh> where calc
C:\Windows\System32\calc.exe
但是在 PS 中也是一样的:
PS C:\data\code> where calc
PS C:\data\code>
输出去哪了?!
当我where在 CMD 中运行时,我得到输出:
C:\Users\Ragesh> where calc
C:\Windows\System32\calc.exe
但是在 PS 中也是一样的:
PS C:\data\code> where calc
PS C:\data\code>
输出去哪了?!
以下对我有用:
PS C:\Users\Bill> where.exe calc
C:\Windows\System32\calc.exe
输入wherePS的时候和执行不一样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-Objectis whereand的别名?),因此什么也不返回,而不是正在执行where.exe calc。
您可以使用Get-Command(alias gcm) cmdlet 而不是where.exe. 这是一个示例函数,使Get-Command函数与where.exe. 如果您将它放在您的PowerShell 配置文件中,它将在您的会话中始终可用。
function which ($command) {
Get-Command -Name $command -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}
以下链接可能有用 -
等效于 Powershell 中的 *Nix 'which' 命令?
https://superuser.com/questions/34492/powershell-equivalent-to-unix-which-command
希望这可以帮助。