2009-12-06 21:52:22 +0000 2009-12-06 21:52:22 +0000
226
226

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

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

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

set NEWVAR=SOMETHING
echo %NEWVAR%

相关问题。

答案 (6)

260
260
260
2009-12-06 21:58:09 +0000

要使环境变量在全球范围内访问,你需要在注册表中设置它。正如你已经意识到的那样,你只需使用:

set NEWVAR=SOMETHING

就可以在当前进程空间中设置。根据 本页 ,你可以使用 setx 命令:

setx NEWVAR SOMETHING

setx 内建在 Windows 7 中,但对于旧版本,可能只有在你安装了 Windows 资源包 后才能使用。

36
36
36
2014-08-26 10:37:26 +0000

我们还可以使用 “setx var var var var /M "将var设置为系统环境变量级别,而不是用户级别。

注意:此命令应该以管理员身份运行。

11
11
11
2017-02-08 14:54:39 +0000
2
2
2
2017-03-09 05:06:52 +0000

系统变量可以通过CMD和注册表来设置,例如. reg query “HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Control\Session Manager\Environment” /v PATH*

所有常用的CMD代码和系统变量都在这里给出。打开CMD,输入Set**,你会得到所有的系统变量的值。

2
2
2
2018-11-13 19:42:06 +0000

你可以使用上面提到的setx env var [/M]来刷新环境变量。如果不生效,你可以用refreshenv刷新环境变量。你不需要重新启动你的电脑、资源管理器.exe或命令提示符就能完成。

编辑:apparantly refreshenv在Windows中并不自然而然地出现,所以这里是源码。https://pastebin.com/1fJqA0pT 将其保存为RefreshEnv.cmd,并将其放在PATH环境变量中的文件夹中。

0
0
0
2017-05-18 19:35:20 +0000

我想补充的是,如果你在远程计算机上使用setx的/s参数来设置环境变量,那么 “远程注册表 "服务需要在目标机器上运行,否则你会收到 "ERROR: The specified operation could not be completed.”

(我已经要求微软更新了他们的TechNet关于setx的文章,以包含这个信息。)