【发布时间】:2014-11-27 23:08:28
【问题描述】:
场景
我想在C:\Windows\System32 或C:\Windows\Syswow64 之外的文件夹上安装x86 命令行应用程序,并且仍然能够在CMD 下访问我的应用程序,而无需在PATH 内添加我的应用程序路径环境变量。
问题
这可能吗?也许触摸需要的注册表项?
注意:我知道如何将我的应用程序添加到 PATH 变量/regvalue 或如何从 CMD 访问我的应用程序,将所需的 .exe 放入 System32/SysWow64 文件夹中。这个问题只是为了学习替代方案,而不是解决PATH或系统目录的问题。
代码
我已经从@Sertac Akyuz 在this answer 的评论中尝试了这种建议的方法,我已将MyApp.exe 存储在C:\ 根目录中,但我无法检测到仅将MyApp.exe 放在下面的应用程序命令。
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"
【问题讨论】:
-
App Paths 不适用于命令提示符。但是您可以使用 App Paths 注册表作弊。您可以为
cmd.exe本身创建一个条目,并在那里创建带有应用程序路径的Path键值。然后将此键值的路径附加到应用程序的环境变量(在本例中为命令提示符)。 -
仅供参考:应用路径不被 cmd.exe 使用,但被其他 shell 使用,例如 tcc.exe:jpsoft.com/tccle-cmd-replacement.html
-
如果你想从命令行运行一个已经包含在
App Paths中的应用程序,你需要使用start MyApp。 -
我觉得这个问题有点奇怪,因为我不明白你想要解决什么确切的问题。您只是希望该命令可以从任何 CMD 提示符运行,但不更改 PATH ?有很多方法。第一个:提供可执行文件的完整路径。如果您不想更改 PATH,您还期望什么?也许检查您是否可以使用别名(类似于 Linux/Unix)。或者快捷方式、脚本……
标签: windows windows-8 cmd registry windows-shell