在Linux下,有一个命令叫做which,它可以在Path中寻找某个命令所在的目录并显示出来。
Linux下:
[adam@i ase adam]$ which ls
/bin/ls
[adam@i ase adam]$ which rm
/bin/rm 在NT的Resource Kit中有一个where.exe,它也有相同的功效,不过Resource Kit是收费的,在这里我们可以作一个批处理文件来实现这个功能。
使用记事本编辑一个which.bat,并将其存放在Wi t目录或者其他Path变量中的目录里,该批处理文件的内容如下:
@echo off Rem 检查命令行参数
if {%1}=={} goto :Usage
for %%i i ({ {/ {-) do if {%1}==%%i?} goto :Usage %%i
echo. :Rem 在当前目录检查看是否存在该文件
for %%i i (%1) do if exist %%~nx%i (
echo %%~Fi
goto :EOF
) :Rem 在Path中检查该文件
for %%i i (%1) do (
if exist %%~$PATH:i (
echo %%~$PATH:i
) else (
echo Error: %1 不在路径里!!!
goto :Usage
)
)
goto :EOF
:Usage
echo.
echo WHICH quot;filename"
echo.
echo 输入文件明,返回该文件的全路径!
echo.
我们来对我们的程序作一个测试:
Microsoft Window 2000 [Versio 5.00.2195]
(C) 版权所有 1985-1998 Microsoft Corp. C:>which WHICH quot;filename" 输入文件明,返回该文件的全路径!
C:>which cmd.exe C:WI Tsystem32cmd.exe C:> OK,测试通过!