从CMD检测命令行应用程序而不会弄乱PATH变量或System32 / SysWow64目录

时间:2014-11-27 23:08:29

标签: windows windows-8 cmd registry windows-shell

方案

我想在C:\Windows\System32C:\Windows\Syswow64之外的文件夹上安装 x86 CommandLine应用程序,并且仍然可以在CMD下访问我的应用程序,而无需在我的应用程序中添加应用程序的路径PATH环境变量。

问题

这可能吗?也许触摸所需的注册表项?

注意:我知道如何将我的应用程序添加到PATH变量/ regvalue中,或者如何从CMD访问我的应用程序,将所需的.exe放在System32 / SysWow64文件夹中。这个问题只是为了学习替代方案,而不是解决PATH系统 dirs的问题。

代码

我在this answer的@Sertac Akyuz评论中尝试了这种建议的方法,我已将MyApp.exe存储在C:\根目录中,但我无法检测到该应用程序将MyApp.exe放在CMD下。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe]
@="C:\\MyApp.exe"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe]
@="C:\\MyApp.exe"

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe]
@="C:\\MyApp.exe"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe]
@="C:\\MyApp.exe"

1 个答案:

答案 0 :(得分:5)

App Paths注册表设置 - 由Windows资源管理器使用,用于在"运行..."中键入程序名称时查找程序盒子等等。这些设置不会影响cmd.exe行为。

设置cmd.exe路径以搜索应用的唯一方法是更改PATH环境变量。您可以从自己的cmd.exe / .bat开始.cmd,在那里为当前会话设置所有必需的变量,而不是全局更改。