我想设置使用SETX命令MAVEN_HOME环境变量,但为了将其设置为“系统变量”,而不是“用户变量”。 为了做到这一点,我必须用SETX使用-m。 另外,我希望设置MAVEN_HOME路径在批处理文件正在运行的当前目录路径。 我这样做的
setx -m MAVEN_HOME "%cd%\apache-maven-3.6.1"
如果我不使用-m然后设置Env_variable为用户变量,如果我使用-m,并运行它以管理员身份那么它不挑这是“C当前目录路径:\用户\尼廷\桌面\ KristomInstall \阿帕奇-maven-3.6.1" 使用%CD%。 相反,它采
C:\WINDOWS\System32\
作为路径使用%CD%。
我需要的是使用-m而且随着一个办法让我运行的批处理文件的当前位置运行它以管理员身份(我试图做使用%CD%吧)
setx -m MAVEN_HOME "%cd%\apache-maven-3.6.1"
所以可以分发该批处理文件到其它系统,而无需手动添加到设置MAVEN_HOME路径。
你的问题没有提及,但行为建议您从运行该批处理文件 。
首先要注意的事情是, SetX
与/m
写变量HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
在注册表中。 这是一个受保护的位置,需要你的脚本Run as administrator
。 当发生这种情况在当前目录通常设置为C:\WINDOWS\System32
,正如你所观察到的。
为了迎合这一点,当你的脚本使用相对路径,您应更改目录,在一开始,到d
里沃和p
运行脚本的ATH,
@Echo Off
CD /D "%~dp0"
SetX MAVEN_HOME "%CD%\apache-maven-3.6.1" /m
或更换%CD%
与变量d
里沃和p
ATH行书的。
@Echo Off
SetX MAVEN_HOME "%~dp0apache-maven-3.6.1" /m
请记住,你已经设置打开一个新的命令窗口时才会生效的变量。
文章来源: I wish to set MAVEN_HOME in the “System Variables” using cmd -> run as administrator