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

时间:2015-07-07 13:03:35

标签: windows shell path registry contextmenu

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

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

setx PATH "%PATH%;%1%"

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

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

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

如果重要,这是在Windows 7企业版计算机上

2 个答案:

答案 0 :(得分:1)

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

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

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

这样我就不需要使用bat文件了。使用double%s和& s似乎可以作为一种逃避角色的方式,从而使它看起来像cmd:

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

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

答案 1 :(得分:0)

Wowwwwww!我只花了我生命的最后6个多小时试图能够从上下文菜单中(永久地)将目录添加到我的路径中。做得好Windows!

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

非常感谢@Metareven的一些关键位(双%s)。几年前失败了。链接下面的相关信息,希望是一个reg文件。 AddToPath.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

How add context menu item to Windows Explorer for folders

How to Run a Program Elevated via the Right-Click Menu in Windows ...

这可能也会以某种方式而不是nircmd:https://superuser.com/a/938121" C:\ Windows \ System32 \ cmd.exe" =" ~RUNASADMIN"

试过这个,没有工作:https://superuser.com/questions/266974/any-freeware-program-for-adding-editing-path-from-context-menu