从Windows批处理文件设置系统环境变量?


195

是否可以从Windows 7(甚至是XP)的命令提示符在系统级别设置环境变量。我正在从提升权限的命令提示符下运行。

当我使用set命令(set name=value)时,环境变量似乎仅对命令提示符会话有效。

Answers:


179

XP支持工具(可以从XP CD中安装)附带一个名为的程序setx.exe

C:\Program Files\Support Tools>setx /?

SETX: This program is used to set values in the environment
of the machine or currently logged on user using one of three modes.

1) Command Line Mode: setx variable value [-m]
   Optional Switches:
    -m  Set value in the Machine environment. Default is User.

...
For more information and example use: SETX -i

我认为Windows 7实际上是setx标准安装的一部分。


7
Windows 7(也许已经是Vista)具有setx标准,但有微小变化吗?没有-i标志,仅运行即可setx /?显示所有帮助和示例
stijn 2013年

3
请记住,您始终可以通过键入where然后输入程序名称来检查路径中是否有该程序(因此,在这种情况下where setx.exe,在Server 2008和Server 2008SP2上进行测试时,我发现在两种情况下,该程序都存在于%windir%\System32\setx.exe
aolszowka

2
@stijn-Win7版本也正式将标志介绍者从-改为正斜线/。但是,看起来该-版本仍然有效。
TED

2
setx变量内容似乎有1024个长度限制
zhy2002 2014年

XP SP2支持工具提供的setx需要正斜杠/,并且破折号-不起作用。setx variable value /m
基思

137

如何setx.exe在命令行中使用JAVA_HOME设置的简单示例:

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

这将为当前用户设置环境变量“ JAVA_HOME”。如果要为所有用户设置变量,则必须使用选项“ -m”。这是一个例子:

setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

注意:您必须以管理员身份执行此命令。

:确保运行命令SETX从一个命令行管理窗口


7
还请注意,某些工具不喜欢JAVA_HOME中的空格,因此值得这样使用Progra~1setx /M JAVA_HOME "C:\Progra~1\Java\jdk1.7.0_09"
samael

1
我这辈子在哪里?
菲利普·雷哥

20

如果通过SETX设置了变量,则不能立即使用此变量或其更改。您必须重新启动要使用它的进程。

也可以使用以下序列在设置过程中直接进行设置(在设置全局变量后执行一些初始化工作的脚本中,这对我非常有用)

SET XYZ=test
SETX XYZ test

谢谢,这让我发疯了!CMD.EXE迫切需要升级才能像普通控制台一样运行!!
萨尔瓦多·瓦伦西亚

我不明白这一点:我应该在哪里运行这两行?
Danijel

1
您也可以refreshenv在使用setx使用新变量之后执行命令。
BrianHVB

@BrianHVB refreshenv无法识别为命令。您是在cmd还是在这样做powershell?(编辑:实际上在两个控制台中都进行了测试,在任何一个控制台中均不起作用)
bigp

@bigp oops,您是对的。这是安装Chocolatey时添加的命令。我的所有系统上都有巧克力味,直到我查了一下才意识到。
BrianHVB

2

对于XP,我使用了一个名为“ RAPIDEE”(快速环境编辑器)的(免费/捐赠软件)工具,但SETX对于Win 7绝对足够(我之前并不知道)。


2

可以通过CMD和注册表设置系统变量。reg查询“ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment” / v PATH

此处提供了所有常用的CMD代码和系统变量:使用CMD设置Windows系统环境变量

打开CMD并输入Set

您将获得系统变量的所有值。

键入set java以了解在您的窗口操作系统上安装的java的路径详细信息。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.