Linux有个Which命令,用来查找可执行文件的位置。
例如:which find, 就会从PATH变量的路径里搜索该命令,返回找到的第一个匹配的结果。
这样我们就可以知道,我们用的find程序是哪里的。
Windows没有这样的指令,我们可以自己写一个:
@echo off echo %~dp$PATH:1 @echo on
就这三行!
下面是执行结果
D:\WORK\RF>d:\Which.bat java.exe
C:\Program Files\Java\jdk1.7.0_71\bin\
D:\WORK\RF>d:\Which.bat cmd.exe
C:\WINDOWS\system32\
D:\WORK\RF>d:\Which.bat cl.exe
C:\Program Files\Microsoft Visual Studio\VC98\Bin\
这个一定要写全文件名,不带扩展名是不行的。
这里用是批处理的编辑符扩展,下面是从Windows的帮助文件里引用的:
也可以在批处理参数中使用编辑符。编辑符使用当前的驱动器和目录信息将批处理参数扩展为部分或完整的文件或目录名。要使用编辑符,请键入百分号 (%) 字符,后面是波形符号 (~) 字符,然后键入合适的编辑符(即 %~modifier)。
%~$PATH:1 搜索 PATH 环境变量中列出的目录,并将 %1 扩展到第一个找到的目录的完全合格名称。如果没有定义环境变量名称,或没有找到文件,则此编辑符扩展成空字符串。