通常在工作中我必须安装新的框架等,这些框架不会将自己添加到路径中,我必须经历将exectuables添加到路径的繁琐过程。因此,我决定添加一个shell上下文菜单项,这样我就可以通过右键单击它并选择“添加到路径”来将任何给定的文件夹添加到路径中。
我完成了创建上下文菜单项的常规例程,并使用以下命令将文件夹添加到路径:
setx PATH "%PATH%;%1%"
这似乎没有评估PATH变量,而是用这样的东西替换我的PATH:
PATH;C:\Program Files (x86)\Android\android-sdk\platform-tools
有没有办法让上下文菜单项评估%PATH%而不是忽略百分号? 我已经阅读了有关使用\,^并且只添加了一个额外的%,但这些方法似乎都不起作用。
如果重要,这是在Windows 7企业版计算机上
答案 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"