如何从注册表刷新 PATH 变量,而无需重新启动、注销或重新启动资源管理器?

如何从注册表刷新 PATH 变量,而无需重新启动、注销或重新启动资源管理器?

我对注册表中的变量做了一些更改%PATH%。现在,我想看到这些更改已应用,而无需注销、重新启动或重新加载 Explorer。有什么方法可以做到这一点吗?

我宁愿通过某种可以放在文件末尾的命令来执行此操作.BAT,并且不想使用除全新安装操作系统时附带的工具之外的任何工具。这需要与 Windows XP SP3 最低程度兼容,并且应该一直适用于 Windows 7 x64 和 Server 2008 R2。

答案1

  • 在系统属性中更改用户或系统路径。
  • 运行此批处理文件将使用 REG 查询提取新的 PATH 变量。
  • FOR 命令从 REG 结果中解析 PATH 变量。
  • 当前 PATH 已更新为注册表值。
  • 我将 ConEmu 用于我的控制台,它在每个新控制台上运行此批处理文件来刷新 PATH,因此无需重新启动。

@echo off
echo.
echo Refreshing PATH from registry

:: Get System PATH
for /f "tokens=2*" %%A in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do set syspath=%%B

:: Get User Path
for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v Path') do set userpath=%%B

:: Set Refreshed Path
set PATH=%userpath%;%syspath%

echo Refreshed PATH
echo %PATH%

```

任务命令ConEmu 中的参数使用 /k 开关启动 C:\Windows\System32\cmd.exe,以运行上面的 refreshpath.cmd,然后保留。这会更新路径并使控制台保持打开状态。

C:\Windows\System32\cmd.exe /k refreshpath.cmd

ConEmu 任务设置

答案2

如果您尝试在 Windows 命令 shell 中使用路径变量的新值,则只需关闭命令 shell 窗口并打开一个新窗口即可。新的命令 shell 将加载更新的路径变量。

所以我认为你最初问题的答案取决于你想在哪里看到变化生效...有什么具体的东西对你不起作用吗?

答案3

无需重启即可将变量添加到路径的最简单方法是打开命令提示符并输入:PATH=(VARIABLE);%path% 并按回车键。要检查变量是否已加载,请输入 PATH 并按回车键。

答案4

  1. 从环境变量中的 UI 更改 PATH 变量。
  2. 添加一个新的环境变量,将其命名为随机变量。可以是 CHANGE_TO_UPDATE 之类的变量,并在其中输入一个随机值,例如 x。
  3. 记得重新启动 cmd.exe 或任何需要查看新路径变量的程序。

当您启动新应用程序时,这实际上会触发设置更新。

相关内容