Finding the path of the program that will execute from the command line in Windows

后端 未结 3 1395

Say I have a program X.EXE installed in folder c:\\abcd\\happy\\ on the system. The folder is on the system path. Now suppose there is another program

相关标签:
3条回答
  • 2021-01-29 22:52

    Here's a little cmd script you can copy-n-paste into a file named something like where.cmd:

    @echo off
    rem - search for the given file in the directories specified by the path, and display the first match
    rem
    rem    The main ideas for this script were taken from Raymond Chen's blog:
    rem
    rem         http://blogs.msdn.com/b/oldnewthing/archive/2005/01/20/357225.asp
    rem
    rem
    rem - it'll be nice to at some point extend this so it won't stop on the first match. That'll
    rem     help diagnose situations with a conflict of some sort.
    rem
    
    setlocal
    
    rem - search the current directory as well as those in the path
    set PATHLIST=.;%PATH%
    set EXTLIST=%PATHEXT%
    
    if not "%EXTLIST%" == "" goto :extlist_ok
    set EXTLIST=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    :extlist_ok
    
    rem - first look for the file as given (not adding extensions)
    for %%i in (%1) do if NOT "%%~$PATHLIST:i"=="" echo %%~$PATHLIST:i
    
    rem - now look for the file adding extensions from the EXTLIST
    for %%e in (%EXTLIST%) do @for %%i in (%1%%e) do if NOT "%%~$PATHLIST:i"=="" echo %%~$PATHLIST:i
    
    0 讨论(0)
  • 2021-01-29 22:52

    As the thread mentioned in the comment, get-command in powershell can also work it out. For example, you can type get-command npm and the output is as below:

    0 讨论(0)
  • Use the where command. The first result in the list is the one that will execute.

    C:\> where notepad
    C:\Windows\System32\notepad.exe
    C:\Windows\notepad.exe
    

    According to this blog post, where.exe is included with Windows Server 2003 and later, so this should just work with Vista, Win 7, et al.

    On Linux, the equivalent is the which command, e.g. which ssh.

    0 讨论(0)
提交回复
热议问题