如何运行不在我的路径中的程序?[重复]


57

可能重复:
为什么我可以执行不在PATH环境变量中的程序?

我当时正在教一位同事有关%PATH%的知识,发现如果我运行“ Firefox”,它可以工作,但是很惊讶地发现它不在我的路上。

我想念什么?


2
这取决于上下文。如果要从命令行输入“ firefox”,则firefox.exe必须位于路径中或Windows或Windows \ System32文件夹中。如果您在“运行”对话框中输入“ Firefox”,则将使用“应用程序路径”注册表,因此将在其中注册firefox.exe。
2012年

感谢boot13,我不知道App Paths注册表项。
Mathew

Answers:


101

如果您试图仅通过指定可执行文件的名称来运行该可执行文件,则Windows会在以下位置查找文件:

  1. 当前工作目录。
  2. Windows目录只(不子目录中搜索)。
  3. Windows\System32目录。
  4. PATH环境变量中列出的目录。
  5. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths(也是HKEY_CURRENT_USER从Windows 7开始)

Microsoft实际上建议在App Paths子项中“注册”应用程序,以避免应用程序需要修改系统PATH环境变量。应用程序的安装程序将注册可执行文件。


3
我见过的问题的最佳答案之一。+1
埃弗里特(Everett)

就是这样,谢谢您,先生。每天学些新东西。
Mathew

8
@Mathew不客气。请记住,对于仅为一个用户安装的应用程序,HKCU配置单元中也存在“应用程序路径”子项。
JC2k8 2012年

1
因此,这就是为什么直到我从.NET开发转到Java开发之前,我才真正需要搞砸PATH的原因。我从来没有真正考虑过为什么.NET开发中的所有功能都可以正常工作!
斯蒂芬·斯文森

2
这仅适用于Windows运行对话框,在cmd.exe和powershell中仅使用1.到4.,另请参见boot13的注释。
亚历山大
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.