从命令提示符设置和获取 Windows 环境变量?

从命令提示符设置和获取 Windows 环境变量?

我想从命令提示符设置一个环境变量,然后能够全局访问它(例如,我应该通过转到系统->环境变量来看到它)。

当我使用 set 命令时,它无法在新的 cmd 会话中访问。

set NEWVAR=SOMETHING
echo %NEWVAR%

相关问题:

答案1

要使环境变量全局可访问,您需要在注册表中设置它。正如您所意识到的,只需使用:

设置 NEWVAR=SOMETHING

您只是在当前进程空间中设置它。

根据这一页您可以使用setx命令:

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 文章包含此信息。

相关内容