一尘不染

Windows 命令行上是否有相当于“which”的功能?

Windows

由于我有时会遇到路径问题,其中我自己的一个 cmd 脚本被另一个程序(路径上的早期)隐藏(隐藏),我希望能够在 Windows 命令行上找到程序的完整路径,给定只是它的名字。

是否有等效于 UNIX 命令“哪个”?

在 UNIX 上,which command打印给定命令的完整路径以轻松查找和修复这些阴影问题。


阅读 261

收藏
2022-01-30

共1个答案

一尘不染

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

尝试where /?寻求帮助。

请注意,Windows PowerShell 定义wherecmdletWhere-Object别名,因此如果需要where.exe,您需要键入全名而不是省略.exe扩展名。或者,您可以为其设置别名:

Set-Alias which where.exe

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

gcm notepad*
2022-01-30