4
當我在CMD運行where
,我得到的輸出:在PowerShell中運行時,爲什麼'where'命令不顯示任何輸出?
C:\Users\Ragesh> where calc
C:\Windows\System32\calc.exe
但在PS同樣的事情:
PS C:\data\code> where calc
PS C:\data\code>
哪裏的輸出去?
當我在CMD運行where
,我得到的輸出:在PowerShell中運行時,爲什麼'where'命令不顯示任何輸出?
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
當您在PS鍵入where
,它不等同於執行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
)cmdlet替代where.exe
。以下是使Get-Command
功能與where.exe
完全相同的示例功能。如果您將其放在您的PowerShell profile中,它將始終在您的會話中可用。
function which ($command) {
Get-Command -Name $command -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}
以下鏈接可能是有用的 -
Equivalent of *Nix 'which' command in Powershell?
https://superuser.com/questions/34492/powershell-equivalent-to-unix-which-command
希望這有助於。
感謝您的提示。這並不能解釋爲什麼'哪裏'在PS中不顯示任何輸出。 – Ragesh
@Ragesh我更新瞭解釋的答案和一種方法來解決這個問題。如果你有問題,請告訴我。 – Bill
您也可以使用cmd.exe運行它。像'cmd/c「calc'' –