修改环境变量后,如何刷新 Windows 命令 shell?
在 Bash 中我可以这样做source ~/.bashrc
答案1
我想完成Lance McCarthy 的回答。
是RefreshEnv.bat
的一部分巧克力味包管理器,因此如果你使用 Chocolatey,那么你已经RefreshEnv.bat
安装了。但你也可以直接从Chocolatey GitHub(原始数据链接)。将此文件保存到您的 PATH 并refreshenv
从任何控制台运行即可更新环境。
答案2
这实际上取决于您的环境变量是如何设置的。例如,如果您在命令行中使用“SET”命令,它只会影响当前实例。另一方面,诸如“SETX”之类的命令将永久调整环境变量的值。SETX 将确保所有未来的 cmd 实例都能看到更新。它不会影响本地环境。
如果环境变量由另一个应用程序设置且未被更新,则最简单的方法是重新启动“explorer.exe”进程,注销并重新登录,或重新启动。 本质上,你只需要告诉 explorer 重新加载环境变量。如果它是你开发的应用程序(例如安装程序),请确保它正在调用SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment");
。这会告诉 explorer 刷新其环境变量缓存。
这很重要,因为由另一个进程启动的应用程序会从其父进程继承环境变量。因此,如果您从 explorer 启动 cmd,您将获得 explorer 看到的变量。
答案3
答案4
现在这变得容易得多,不需要重新启动 shell:
- 打开开始菜单并搜索
RefreshEnv.bat
- 跑步
RefreshEnv.bat
观察您新添加的环境变量是否在任何新的 Command/Powershell 实例中可用,从而验证刷新。
[编辑] 批处理文件附带某些开发工具(例如 Visual Studio),它不是 Windows 上的默认工具。您可以通过安装 chocolatey 快速获取它,或者更好的是,您可以复制文本并将其保存在本地 https://github.com/chocolatey/choco/blob/master/src/chocolatey.resources/redirects/RefreshEnv.cmd