该 的GnuWin32 工具有 which ,以及一大堆其他Unix工具。
which
来自JPSoft的TCC和TCC / LE是CMD.EXE替代品,可添加重要功能。与OP的问题相关, which 是TCC系列命令处理器的内置命令。
我创建了类似于Ned Batchelder的工具:
在PATH中搜索.dll和.exe文件
虽然我的工具主要用于搜索各种dll版本,但它显示更多信息(日期,大小,版本),但它不使用PATHEXT(我希望尽快更新我的工具)。
在Windows CMD中 which 电话 where :
where
$ where php C:\Program Files\PHP\php.exe
我在Windows上找到的最好的版本是Joseph Newcomer的“whereis”实用程序,可以从(来源)获得 他的网站 。
关于“whereis”发展的文章值得一读。
我的PowerShell配置文件中有一个名为'which'的函数
function which { get-command $args[0]| format-list }
这是输出的样子:
PS C:\Users\fez> which python Name : python.exe CommandType : Application Definition : C:\Python27\python.exe Extension : .exe Path : C:\Python27\python.exe FileVersionInfo : File: C:\Python27\python.exe InternalName: OriginalFilename: FileVersion: FileDescription: Product: ProductVersion: Debug: False Patched: False PreRelease: False PrivateBuild: False SpecialBuild: False Language:
我用过了 which 来自npm的模块已经有一段时间了,而且效果非常好: https://www.npmjs.com/package/which 这是一个很好的多平台替代方案。
现在我切换到了 which Git附带的。只需添加到您的路径中即可 /usr/bin 来自Git的路径,通常是在 C:\Program Files\Git\usr\bin\which.exe 。该 which 二进制文件将在 C:\Program Files\Git\usr\bin\which.exe 。它更快,也可以按预期工作。
/usr/bin
C:\Program Files\Git\usr\bin\which.exe
Windows Server 2003及更高版本(即Windows XP 32位之后的任何内容)提供了 where.exe 做一些什么的程序 which 虽然它匹配所有类型的文件,但不仅仅是可执行命令。 (它与内置的shell命令不匹配 cd 。)它甚至会接受通配符,所以 where nt* 找到你的所有文件 %PATH% 和名称以。开头的当前目录 nt 。
where.exe
cd
where nt*
%PATH%
nt
尝试 where /? 求助。
where /?
请注意,Windows PowerShell定义 where 作为别名 该 Where-Object 小命令 ,所以如果你想 where.exe ,你需要输入全名而不是省略 .exe 延期。
Where-Object
.exe
此批处理文件使用CMD变量处理来查找将在路径中执行的命令。注意:当前目录始终在路径之前完成,并且根据使用的API调用,在路径之前/之后搜索其他位置。
@echo off echo. echo PathFind - Finds the first file in in a path echo ======== = ===== === ===== ==== == == = ==== echo. echo Searching for %1 in %path% echo. set a=%~$PATH:1 If "%a%"=="" (Echo %1 not found) else (echo %1 found at %a%)
看到 set /? 求助。
set /?
在PowerShell中,它是 gcm ,提供有关其他命令的格式化信息。如果要仅检索可执行文件的路径,请使用 .Source 。
gcm
.Source
例如: gcm git 要么 (gcm git).Source
gcm git
(gcm git).Source
小知识:
Get-Command
Set-Alias which gcm
(which git).Source
我在互联网上找到的Unix的Win32端口都不是satistactory,因为它们都有一个或多个这些缺点:
所以我最终写了自己的,这正确地支持了以上所有内容。
在那里可用: http://jf.larvoire.free.fr/progs/which.exe
没有库存的Windows,但它是由提供 Unix服务 并且有几个简单的批处理脚本可以完成同样的事情 这个 。
适合你的Windows XP用户(谁没有 where 命令内置),我写了一个“where like”命令作为rubygem调用 whichr 。
whichr
要安装它,请安装Ruby。
然后
gem install whichr
运行它像:
C:>哪个cmd_here