使用 PATH 管理器禁用路径时出现的问题

使用 PATH 管理器禁用路径时出现的问题

我想使用路径管理器以方便的方式从 PATH 环境变量中禁用/启用给定的路径。

我正在尝试禁用该路径C:\programming\python\WinPython-32bit-2.7.9.3\python-2.7.9,因此我取消选中相应的“活动”和“系统”框,然后点击保存按钮:

在此处输入图片描述

然后我启动了一个新的 cmd.exe 窗口,但是我仍然C:\programming\python\WinPython-32bit-2.7.9.3\python-2.7.9在路径中:

在此处输入图片描述

我检查了用户和系统的 PATH 变量,它们不再包含 C:\programming\python\WinPython-32bit-2.7.9.3\python-2.7.9

我错过了什么?

答案1

我刚刚检查了源代码。该程序只是编辑了包含PATH信息的注册表项 -> SYSTEM\CurrentControlSet\Control\Session Manager\Environment\path

我没有看到任何命令来告诉操作系统密钥已更改。因此,似乎确实需要重新启动。可以在此处找到一个选项:https://stackoverflow.com/questions/3189652/using-rundll32-user32-dl​​l-to-indicate-that-a-users-environment-has-changed

另一个问题:单击active复选框时,更改不会保存。并且保存按钮保持禁用状态。

摘要:工作原理:

  1. 单击active复选框(这是你真正想要的)
  2. 添加任何新路径(现在保存按钮已启用)
  3. 单击保存(现在更改存储在注册表中)
  4. 打开 PowerShell 窗口
  5. 类型[Environment]::SetEnvironmentVariable("dummy","anyValue","User")(最后一个值可以是MachineUserProcess。这会向系统发送更新环境广播)
  6. 打开新的 cmd 并输入echo %path%(或使用where)(现在可以看到 1. 中的变化)

所以,使用起来PATH Manager一点都不舒服。但是,您可以使用 PowerShell 脚本进行编辑PATH并立即应用更改 -->http://poshcode.org/3537

相关内容