我记得我使用了一个名为 as 的工具where
在控制台中查找任何可执行程序的位置,例如:
C:\Tmp\Where myTool.exe
C:\Program Files\MyApp\myTools.exe
....
现在我找不到这个工具。不确定 Windows 是否有内置工具可以进行该搜索?
答案1
根据 Stack Overflow 上的回答Windows 上是否有与‘which’等效的词?,where.exe
在 Windows 7 和 Windows Server 2003 及更高版本上执行此操作:
例子
C:\> where ping
输出:
C:\Windows\System32\PING.EXE
在 PowerShell 中使用where.exe
,Get-Command
(或其缩写gcm
),作为where
的默认别名Where-Object
。
答案2
对我来说,有效的方法是
Get-Command chromedriver
返回类似
CommandType Name Version Source
----------- ---- ------- ------
Application chromedriver.exe 0.0.0.0 C:\WINDOWS\chromedriver.exe
只需替换chromedriver
您要查找的程序
答案3
编辑: 我应该补充一点,如果您无法从命令提示符中使用 WHERE 命令,请检查您的 PATH 变量。(只需使用“path”命令即可。)确保 C:\Windows\System32 在您的路径中。这就是“where.exe”所在的位置。
WHERE 就是您要查找的命令!WHERE 就像是 UNIX shell 内置“which”和“locate”命令的结合体,它既适用于命令可执行文件,也适用于常规文件。
它也比上述两个都复杂一些,尽管一般来说,一个简单的
WHERE <file>
将工作。
它与“locate”命令不同,因为它不会查看整个文件系统。相反,默认行为是在两个位置查找文件:
- 当前目录。
- PATH 变量中的所有目录。
因此,任何可以直接从命令提示符运行而无需指定目录的命令都将由 WHERE 命令找到。(因为任何类似的命令都已在 PATH 变量列表中。)
如果你想搜索仅有的在命令路径变量中,您可以使用:
WHERE "$path:<search text>"
另一方面,如果您想在目录树中查找文件的所有副本,则可以使用:
WHERE /R <Top Level Directory> <search text>
最后,WHERE 将查找命令和任何带有来自 PATHEXT 变量的扩展名的文件(不包括扩展名)。所有其他文件必须准确指定或使用通配符指定。
以文件“dxdiag.exe”和“dxdiagn.dll”为例。请注意以下命令及其输出:
WHERE /R C:\Windows dxdiag
C:\Windows\System32\dxdiag.exe
C:\Windows\SysWOW64\dxdiag.exe
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiag.exe
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiag.exe
它成功返回了“dxdiag.exe”的所有版本,因为“.exe”是 PATHEXT 变量中的扩展名之一。(注意:“WHERE dxdiag”也可以正常工作,因为 C:\Windows\System32 位于 PATH 变量中。)
WHERE /R C:\Windows dxdiagn
另一方面,无法返回任何结果,因为“.dll”是不是在 PATHEXT 中。
在这种情况下,看看添加通配符给我们的结果:
WHERE /R C:\Windows dxdiagn*
C:\Windows\System32\dxdiagn.dll
C:\Windows\System32\en-US\dxdiagn.dll.mui
C:\Windows\SysWOW64\dxdiagn.dll
C:\Windows\SysWOW64\en-US\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_daccd04369b09c70\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiagn.dll
C:\Windows\WinSxS\x86_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_7eae34bfb1532b3a\dxdiagn.dll.mui
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiagn.dll
成功返回全部dxdiagn.dll 的版本。
如需更多信息,请使用“WHERE /?”。希望这对您有所帮助!