除 PATH 之外的 Dos 可执行文件查找

除 PATH 之外的 Dos 可执行文件查找

我打开一个 cmd(Windows 7),然后输入“java.exe”,系统在 c:\program files\java\jre6\bin 找到可执行文件。

但是,此文件夹不在路径中。还有什么其他机制影响 exe 查找?

答案1

从 Vista 及更高版本开始,Windows 现在包含一个名为 的实用程序where。此程序的功能与您期望的 unix 对应程序一样(我很高兴他们添加了它!)

用法:

C:\>where java
C:\Windows\System32\java.exe

更棒的是where,它会显示路径中找到的所有可执行文件,所以如果你在 C:\Windows 中也有 java.exe,它会显示在下面\System32\ 一个。

编辑

我认为我还会为那些想要在没有第三方工具的情况下使用该功能的 XP 用户提供一个选项。Raymond Chen 编写了一个命令脚本90 字节的“whereis”程序。这是完成相同任务的漂亮一行代码!

@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i

将上述脚本保存为 .bat 或 .cmd 文件,然后您就可以从命令行以文件名作为参数启动它。它会像您预期的那样工作!(注意,如果使用脚本版本,请省略扩展名,它会为您搜索所有可执行扩展名)

答案2

c:\windows\system32 (这是环境变量中定义的路径)中有一个 java.exe 的副本。它是在命令提示符下键入 java.exe 时出现的那个,而不是 c:\program files\java\jre6\bin 中的那个。

答案3

还有另一种方法可以使用 powershell 查找路径中的文件位置:

(Get-Command java).Source

相关内容