添加 shell 上下文菜单项,以便我可以通过右键单击将文件夹添加到路径

问题描述 投票:0回答:2

在工作中,我经常必须安装新的框架等,这些框架不会将自己添加到路径中,并且我必须经历将可执行文件添加到路径中的繁琐过程。因此,我决定添加一个 shell 上下文菜单项,这样我只需右键单击它并选择“添加到路径”即可将任何给定文件夹添加到路径中。

我完成了创建上下文菜单项的常规例程,并使用以下命令将文件夹添加到路径:

setx PATH "%PATH%;%1%"

这似乎没有评估 PATH 变量,而是用这样的东西替换我的 PATH:

PATH;C:\Program Files (x86)\Android\android-sdk\platform-tools

有没有办法让上下文菜单项评估 %PATH% 而不是仅仅忽略百分号? 我读过有关使用 \,^ 并添加额外的 % 但这些方法似乎都不起作用。

如果重要的话,这是在 Windows 7 Enterprise 计算机上

windows shell path registry contextmenu
2个回答
1
投票

设法找到永久解决方案。 由于 setx 设置用户路径而不是系统路径,因此我的问题中提到的命令会将用户路径 + 系统路径组合中的所有元素添加到 PATH,从而在每次运行脚本时有效地将其大小加倍。

这可以通过删除用户路径来修复,或者像我一样,添加另一个用户变量并将其附加到路径中。然后我最终得到了以下脚本来正确设置路径:

cmd /k setx UPATH "%%UPATH%%;%1%" && exit

这样我就不需要使用bat文件了。使用双 %s 和 &s 似乎是一种转义字符的方法,从而使其在 cmd 中看起来像这样:

setx UPATH "%UPATH%;drive:/theFolderYouRightClicked" & exit

我仍然不确定为什么你必须通过 cmd 传递它才能看到 PATH 变量,但至少这是解决我的问题的半干净方法


1
投票

哇哇哇!我刚刚花了生命中最后 6 个多小时的时间尝试从上下文菜单中(永久)向我的路径添加目录。干得好 Windows!

nircmd.exe elevate "cmd.exe" /k "setx /M PATH %%PATH%%;%1" && exit

非常感谢@Metareven 提供的一些关键位(双%s)。几年前失败了。下面的链接可获取相关信息,并希望有一个 reg 文件。添加到路径.reg

在此过程中擦除了我所有的路径!完全值得的! :)

您需要在 C:\windows\system32 文件夹(或您的路径中!)中有 nircmd.exe。 “/k”是必需的,只有天知道为什么。 “/M”代表机器、系统、永久。 (我就像两次尝试放弃并浪费了所有这些时间)。

使用RapidEnvironmentEditor(在管理模式下)检查,打开的cmd提示符不会有当前的PATH信息。由于某种原因获得双倍 ;s。下面的 reg 文件仍然不起作用(有人知道为什么吗?)您必须使用 regedit 或 AdvancedRegistryEditor 手动输入条目(请参阅下面的链接)。使用 EcMenu.exe 删除上下文菜单错误(和其他错误)。

Windows Registry Editor Version 5.00  **doesn't work**

[HKEY_CLASSES_ROOT\Folder\shell\AddToPath]
"Add To Path"

[HKEY_CLASSES_ROOT\Folder\shell\AddToPath\command]
nircmd.exe elevate "cmd.exe" /k "setx /M PATH %%PATH%%;%1"

这实际上对我有用(没有双%s),但仅对用户路径:

cmd /k setx PATH "%PATH;"%1 && pause

如何将上下文菜单项添加到 Windows 文件夹资源管理器

如何在 Windows 中通过右键单击菜单运行提升的程序...

这也可能以某种方式代替 nircmd 工作:https://superuser.com/a/938121“C:\Windows\System3

© www.soinside.com 2019 - 2024. All rights reserved.