刷新环境变量

刷新环境变量

修改环境变量后,如何刷新 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

我了解到有一种更简单的方法可以实现这一点:有一个名为的命令refreshenv

运行它你会看到以下内容:

在此处输入图片描述

E:>refreshenvewe w 正在刷新 cmd.exe 注册表中的环境变量 eee。请稍候...已完成..

答案4

现在这变得容易得多,不需要重新启动 shell:

  1. 打开开始菜单并搜索RefreshEnv.bat
  2. 跑步RefreshEnv.bat

观察您新添加的环境变量是否在任何新的 Command/Powershell 实例中可用,从而验证刷新。

[编辑] 批处理文件附带某些开发工具(例如 Visual Studio),它不是 Windows 上的默认工具。您可以通过安装 chocolatey 快速获取它,或者更好的是,您可以复制文本并将其保存在本地 https://github.com/chocolatey/choco/blob/master/src/chocolatey.resources/redirects/RefreshEnv.cmd

相关内容