我希望使用 cmd 在"系统变量"中设置MAVEN_HOME ->以管理员身份运行



我正在尝试使用 setx 命令设置MAVEN_HOME环境变量,但为了将其设置为"系统变量"而不是"用户变量"。为了做到这一点,我必须将 -m 与 setx 一起使用。另外,我希望MAVEN_HOME路径设置为运行批处理文件的当前目录路径。我这样做是

setx -m MAVEN_HOME "%cd%apache-maven-3.6.1"

如果我不使用 -m,那么它将Env_variable设置为用户变量,如果我使用 -m 并以管理员身份运行它,那么它不会使用 %cd% 选择当前目录路径"C:\Usersitin\Desktop\KristomInstall\apache-maven-3.6.1"。相反,它会选择

C:WINDOWSSystem32 

作为使用 %cd% 的路径。

我需要的是使用 -m 并以管理员身份运行它,以及获取我正在运行的批处理文件的当前位置的方法(因为我试图使用 %cd% 来做到这一点(

setx -m MAVEN_HOME "%cd%apache-maven-3.6.1"

所以我可以将此批处理文件分发到其他系统,而无需手动添加路径来设置MAVEN_HOME。

您的问题没有提到它,但该行为表明您正在从批处理文件运行它。

首先要注意的是,带有/mSetX将变量写入注册表中的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment。这是一个受保护的位置,需要您的脚本Run as administrator。发生这种情况时,当前目录通常设置为C:WINDOWSSystem32,正如您所观察到的。

为了满足这一点,当你的脚本使用相对路径时,你应该在一开始就将目录更改为运行脚本的drive 和path,

@Echo Off
CD /D "%~dp0"
SetX MAVEN_HOME "%CD%apache-maven-3.6.1" /m

或者将%CD%变量替换为正在运行的脚本的drive 和path。

@Echo Off
SetX MAVEN_HOME "%~dp0apache-maven-3.6.1" /m

请记住,您设置的变量仅在打开新命令窗口时生效。

相关内容

  • 没有找到相关文章

最新更新