由于我有时会遇到路径问题,其中我自己的一个 cmd 脚本被另一个程序(路径上的早期)隐藏(隐藏),我希望能够在 Windows 命令行上找到程序的完整路径,给定只是它的名字。
是否有等效于 UNIX 命令“哪个”?
在 UNIX 上,which command打印给定命令的完整路径以轻松查找和修复这些阴影问题。
Windows Server 2003 及更高版本(即 Windows XP 32 位之后的任何版本)提供的where.exe程序可以执行某些which操作,但它匹配所有类型的文件,而不仅仅是可执行命令。(它不匹配像 . 这样的内置 shell 命令cd。)它甚至可以接受通配符,因此where nt*可以在您和当前目录中查找%PATH%名称以 . 开头的所有文件nt。
where.exe
which
cd
where nt*
%PATH%
nt
尝试where /?寻求帮助。
where /?
请注意,Windows PowerShell 定义where为cmdlet的Where-Object别名,因此如果需要where.exe,您需要键入全名而不是省略.exe扩展名。或者,您可以为其设置别名:
where
Where-Object
.exe
Set-Alias which where.exe
更新:建议使用Get-Command(alias: gcm),因为它是 PS 原生的,并且将获取所有命令类型:别名、cmdlet、可执行文件和函数。例子:
Get-Command
gcm
gcm notepad*