在Windows命令行中是否有等同于'which'的命令?

发布时间 2023-11-04 23:23:10作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=在Windows命令行中是否有等同于'which'的命令?

由于我有时会遇到路径问题,即我的一个cmd脚本被另一个程序(在路径中更早出现)隐藏(遮蔽),因此我希望能够在Windows命令行中仅凭程序名称找到程序的完整路径。

在Windows上是否有类似于UNIX命令'which'的工具?

在UNIX上,which command会打印给定命令的完整路径,以便轻松地发现和修复这些遮蔽问题。


Windows Server 2003及更高版本(即Windows XP 32位之后的版本)提供了where.exe程序,它执行类似于which命令的一些操作,但它匹配所有类型的文件,而不仅仅是可执行命令。(它不匹配内置的shell命令,如cd。) 它甚至可以接受通配符,因此where nt*可以找到您的%PATH%和当前目录中名称以nt开头的所有文件。

尝试使用 where /? 获取帮助。

请注意,Windows PowerShell将where定义为[Where-Object cmdlet]的别名,因此如果您想要where.exe,则必须键入完整名称而不是省略.exe扩展名。或者,您可以为此设置一个别名:

Set-Alias which where.exe

更新: 建议使用 Get-Command (别名:gcm),因为它是PS的原生命令,可以获取所有命令类型:别名、cmdlets、可执行文件和函数。示例:

gcm notepad*