从命令提示符中设置和获取Windows环境变量?
我想从命令提示符中设置一个环境变量,然后能够全局访问它(例如,我应该通过系统-/>环境变量来看到它)。
当我使用set命令时,它不能在新的cmd会话中访问。
set NEWVAR=SOMETHING
echo %NEWVAR%
相关问题。
- 在Windows中,有没有什么命令行工具可以用来编辑环境变量?_
- 在通过windows批处理脚本生成的shell中设置多个环境变量 _
- [ 有什么命令行工具可以在Windows中编辑环境变量?
我想从命令提示符中设置一个环境变量,然后能够全局访问它(例如,我应该通过系统-/>环境变量来看到它)。
当我使用set命令时,它不能在新的cmd会话中访问。
set NEWVAR=SOMETHING
echo %NEWVAR%
相关问题。
要使环境变量在全球范围内访问,你需要在注册表中设置它。正如你已经意识到的那样,你只需使用:
set NEWVAR=SOMETHING
就可以在当前进程空间中设置。根据 本页 ,你可以使用 setx
命令:
setx NEWVAR SOMETHING
setx
内建在 Windows 7 中,但对于旧版本,可能只有在你安装了 Windows 资源包 后才能使用。
setx program "C:\Program Files" /M
/M用于设置系统环境变量的级别,而不是像@Minh Chau那样的用户级别
RESTART*命令行(如果不重启命令行,环境变量将不起作用)
系统变量可以通过CMD和注册表来设置,例如. reg query “HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Control\Session Manager\Environment” /v PATH*
所有常用的CMD代码和系统变量都在这里给出。打开CMD,输入Set**,你会得到所有的系统变量的值。
你可以使用上面提到的setx env var [/M]
来刷新环境变量。如果不生效,你可以用refreshenv
刷新环境变量。你不需要重新启动你的电脑、资源管理器.exe或命令提示符就能完成。
编辑:apparantly refreshenv在Windows中并不自然而然地出现,所以这里是源码。https://pastebin.com/1fJqA0pT 将其保存为RefreshEnv.cmd,并将其放在PATH环境变量中的文件夹中。
我想补充的是,如果你在远程计算机上使用setx的/s参数来设置环境变量,那么 “远程注册表 "服务需要在目标机器上运行,否则你会收到 "ERROR: The specified operation could not be completed.”
(我已经要求微软更新了他们的TechNet关于setx的文章,以包含这个信息。)