Why doesn't the 'where' command display any output when running in PowerShell?
powershell
Solution
The following worked for me:
PS C:\Users\Bill> where.exe calc
C:\Windows\System32\calc.exe
When you type `where` in PS, it is not same as executing `where.exe`
PS C:\Users\Bill> where <press ENTER>
cmdlet Where-Object at command pipeline position 1
Supply values for the following parameters:
Property:
So when you type `where calc` it is executing `Where-Object calc` (the alias of `Where-Object` is `where` and `?`) and thus returns nothing, and not executing `where.exe calc`.
You can use the `Get-Command` (alias `gcm`) cmdlet instead of `where.exe`. Here is an example function to make `Get-Command` function exactly like `where.exe`. If you put this in your PowerShell profile it will always be available in your session.
function which ($command) {
Get-Command -Name $command -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}
The following links may be useful -
Equivalent of *Nix 'which' command in Powershell?
https://superuser.com/questions/34492/powershell-equivalent-to-unix-which-command
Hope this helps.
Problem
When I run `where` in CMD, I get output: ``` C:\Users\Ragesh> where calc C:\Windows\System32\calc.exe ``` But the same thing in PS: ``` PS C:\data\code> where calc PS C:\data\code> ``` Where's the output going?!