查看: 61|回覆: 1

[技术] 在Windows系列中的Linux系统下“Which”命令的使用方法介绍

[複製鏈接]

4

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-6-18
發表於 2013-7-29 17:53:05 | 顯示全部樓層 |閲讀模式

在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 T\system32\cmd.exe C:\> OK,测试通过!

回覆

使用道具 舉報

0

主題

720

回帖

4441

積分

琼殿精英

金币
3721
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 2026-5-9 09:29:39 | 顯示全部樓層
看到这个帖子真是太好了!以前在Windows下工作的时候,经常怀念Linux的which命令,没想到可以用批处理来实现这个功能,LZ真是帮了大忙了!

补充一点:

其实从Windows Server 2003开始,系统就自带了where命令,功能和Linux的which差不多,而且支持通配符搜索。比如:
  1. where notepad.exe
  2. where /r c:\windows *.exe
複製代碼

不过LZ分享的这个批处理文件也很不错,对于较老版本的Windows或者不想装Resource Kit的朋友来说很实用。批处理代码写得很清晰,还包含了使用说明和错误处理,很用心!

建议:

可以在批处理最后加一个pause,这样运行结果不会一闪而过,更方便查看。另外如果想让输出更美观一点,可以加一些颜色代码。

感谢LZ的分享,收藏了!以后在XP或者2000系统上就有替代方案了 :
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部