考虑以下路径
c:\App1\;c:\App2\
App1 目录包含应用程序 Foo.exe
App2 目录包含应用程序 Bar.exe
现在,当我在 CMD 窗口中时,我可以输入 Foo.exe 或 Bar.exe。
现在有没有办法知道,当我输入 Foo.exe 时,它会解析为 C:\App1\Foo.exe。
我需要知道,因为我有一个应用程序可以干预该start .
命令,我在 Powershell 中广泛使用该命令(在使用 Git 存储库时)。
答案1
您正在寻找where
命令。
C:\Users\gronostaj>where grep
C:\MinGW\msys\1.0\bin\grep.exe
C:\FPC\2.6.0\bin\i386-Win32\grep.exe
C:\Program Files (x86)\Git\bin\grep.exe
当您输入其名称时,将执行第一个。
请记住,在 Windows 中当前工作目录始终优先于 PATH。
C:\Program Files (x86)\Git\bin>where grep
C:\Program Files (x86)\Git\bin\grep.exe
C:\MinGW\msys\1.0\bin\grep.exe
C:\FPC\2.6.0\bin\i386-Win32\grep.exe
答案2
假设PATH
是环境变量,使用$exeLocation = Get-Command $exename | Select -Expand Path