我想从命令提示符设置一个环境变量,然后能够全局访问它(例如,我应该通过转到系统->环境变量来看到它)。
当我使用 set 命令时,它无法在新的 cmd 会话中访问。
set NEWVAR=SOMETHING
echo %NEWVAR%
相关问题:
答案1
要使环境变量全局可访问,您需要在注册表中设置它。正如您所意识到的,只需使用:
设置 NEWVAR=SOMETHING
您只是在当前进程空间中设置它。
setx NEWVAR 某些内容
setx
内置于 Windows 7,但对于较旧的版本,可能仅当您安装Windows 资源工具包
答案2
我们还可以使用“setx var variable /M”将var设置为系统环境变量级别而不是用户级别。
注意:此命令应以管理员身份运行。
答案3
您可以setx env var [/M]
按上述方法使用。如果它没有生效,您可以使用它refreshenv
来刷新环境变量。您不必重新启动计算机、explorer.exe 或命令提示符来执行此操作。
编辑:显然,refreshenv 不是 Windows 自带的,因此这里是源代码:https://pastebin.com/1fJqA0pT
另存为 RefreshEnv.cmd 并将其放在 PATH 环境变量中包含的文件夹中
答案4
我想补充一点,如果您使用 setx 的 /s 参数来在远程计算机上设置环境变量,则“远程注册表”服务需要在目标计算机上运行,否则您将收到“错误:无法完成指定的操作。”
(我已要求微软更新其有关 setx 的 TechNet 文章包含此信息。