In Linux, we have the "which" command to find out the path of an executable.
What is its Windows equivalent? Is there any PowerShell command for doing that?
-
See also stackoverflow.com/questions/304319/…– ysapMay 8, 2015 at 10:17
-
Is there an equivalent of 'which' on the Windows command line?– phuclvMay 4, 2016 at 4:21
6 Answers
Newer versions of Windows (I think Windows 2003 and up) have the where command:
C:\>where ping
C:\Windows\System32\PING.EXE
And for PowerShell, explicitly add the .exe suffix:
PS C:\>where.exe ping
C:\Windows\System32\PING.EXE
-
6
-
9
-
where /r c:\ fileName
adding the /r c:\ allowed me to perform a recursive search starting at the root of the C drive using Windows 7 Professional it seems to not be in access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/… Sep 25, 2015 at 9:09 -
12in Powershell you should say
where.exe ping
becausewhere
is by default aliased toWhere-Object
cmdlet which is completely different story– maoizmMay 27, 2018 at 11:18 -
2
Yes, Get-Command
will find all commands including executables:
PS\> Get-Command ipconfig
If you want to limit the commands to just executables:
PS\> Get-Command -CommandType Application
Will find all exes in your path. There is an alias for interactive use:
PS\> gcm net* -CommandType Application
To get the path of an executable, you can use the Path
property of the returned object. For example:
PS\> (Get-Command notepad.exe).Path
For more info, run man Get-Command -full
.
where.exe
explicitly rather than where
works for me in PowerShell:
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
-
-
In PowerShell? I'm on Windows 10 Pro 1903, and
where ping
gives me nothing in PowerShell.– drkvogelSep 26, 2019 at 15:53 -
Cmd
where
C:\Users\X>where ping
C:\Windows\System32\PING.EXE
C:\Users\X>
Powershell
Get-Command
PS C:\Users\X> Get-Command ping
CommandType Name Version Source
----------- ---- ------- ------
Application PING.EXE 10.0.1776… C:\WINDOWS\system32\PING.EXE
PS C:\Users\X>
In addition to user10404, the help command will work on aliases, so you can use the same command name (gcm) for help and interactive use:
help gcm -Parameter *
# or
man gcm -Par *
If you want to make it short, create a one line which.cmd file with the content
echo %~$PATH:1
This will search the first parameter (%1) fed to the script and display the full path of found file. Good place to put this script in windows 10 is %LOCALAPPDATA%\Microsoft\WindowsApps\which.cmd
And you get your which command in path.
c:\>which cmd.exe
c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe