@echo off

setlocal EnableExtensions DisableDelayedExpansion
setx JAVA_HOME "D:\a_soft\a_green\java\jdk\17"
setx MAVEN_HOME "D:\a_soft\a_green\java\maven"
setx ORACLE_HOME "D:\a_soft\a_green\a_lib\oracle\instantclient_19_8"
setx NLS_LANG "AMERICAN_AMERICA.AL32UTF8"

set "new_path=%%JAVA_HOME%%\bin"
set "already_added=0"
for /f "tokens=2,*" %%a in ('reg query HKCU\Environment /v PATH ^| find /i "PATH"') do (
    set "user_path_var=%%b"
)
if "%user_path_var:~-1%"==";" set "user_path_var=%user_path_var:~0,-1%"
echo User PATH variable: %user_path_var%
for %%i in ("%user_path_var:;=" "%") do (
    if /i "%%~i"=="%new_path%" (
        set "already_added=1"
    )
)
if %already_added%==0 (
    setx PATH "%user_path_var%;%new_path%"
    echo %new_path% add ok.
) else (
    echo %new_path% already exists in user PATH variable.
)
 
set "new_path=%%MAVEN_HOME%%\bin"
set "already_added=0"
for /f "tokens=2,*" %%a in ('reg query HKCU\Environment /v PATH ^| find /i "PATH"') do (
    set "user_path_var=%%b"
)
if "%user_path_var:~-1%"==";" set "user_path_var=%user_path_var:~0,-1%"
echo User PATH variable: %user_path_var%
for %%i in ("%user_path_var:;=" "%") do (
    if /i "%%~i"=="%new_path%" (
        set "already_added=1"
    )
)
if %already_added%==0 (
    setx PATH "%user_path_var%;%new_path%"
    echo %new_path% add ok.
) else (
    echo %new_path% already exists in user PATH variable.
)

endlocal
pause

一、添加新环境变量
要在BAT文件中添加名为 JAVA_HOME,值为 D:\a_soft\a_green\java\jdk\8 的用户环境变量,您可以按照以下步骤进行操作:

打开记事本或任何文本编辑器。

输入以下命令:

setx JAVA_HOME "D:\a_soft\a_green\java\jdk\8" /m

/m 参数指定将变量添加到用户环境变量中。

将此命令保存为 .bat 文件。例如,您可以将其保存为 set_java_home.bat。

双击 BAT 文件以运行该命令。此命令将添加名为 JAVA_HOME,值为 D:\a_soft\a_green\java\jdk\8 的变量到用户环境变量中。

请注意,为了使新添加的变量生效,您需要注销并重新登录到计算机上的用户帐户。

–设置到了系统变量,我希望在用户变量

如果您想将变量添加到用户环境变量而不是系统环境变量,请按照以下步骤操作:

打开记事本或任何文本编辑器。

输入以下命令:

setx JAVA_HOME "D:\a_soft\a_green\java\jdk\8"

此命令没有指定 /m 参数,这意味着它将变量添加到用户环境变量中。

将此命令保存为 .bat 文件。例如,您可以将其保存为 set_java_home.bat。

双击 BAT 文件以运行该命令。此命令将添加名为 JAVA_HOME,值为 D:\a_soft\a_green\java\jdk\8 的变量到用户环境变量中。

请注意,为了使新添加的变量生效,您需要注销并重新登录到计算机上的用户帐户。

二、添加进PATH
要将 %JAVA_HOME%/bin 添加到用户环境变量的 PATH 变量中,但只有当该路径尚不存在于 PATH 变量中时,请按照以下步骤操作:

打开记事本或任何文本编辑器。

输入以下命令:

@echo off
 
set "new_path=%JAVA_HOME%\bin"
set "path_var=%PATH%"


 
if "%path_var:~-1%"==";" set "path_var=%path_var:~0,-1%"
if not "%path_var%"=="%path_var:%new_path%;=%" (
    echo %new_path% already exists in PATH
) else (
    setx PATH "%PATH%;%new_path%"
    echo %new_path% has been added to PATH
)

此命令首先检查 PATH 变量是否以分号结尾。如果是,则删除分号以避免创建空项。然后,它使用 %new_path%; 的出现次数来检查 PATH 是否已经包含 %JAVA_HOME%\bin。如果是,则打印消息指示该路径已存在于 PATH 中。如果没有,则使用 setx 命令将 %JAVA_HOME%\bin 添加到 PATH 变量中,并打印消息指示该路径已添加到 PATH 中。

将此命令保存为 .bat 文件。例如,您可以将其保存为 set_java_path.bat。

双击 BAT 文件以运行该命令。此命令将在 PATH 变量中添加 %JAVA_HOME%\bin,但只有当该路径尚不存在于 PATH 变量中时。

请注意,为了使新添加的变量生效,您需要注销并重新登录到计算机上的用户帐户。

HKEY_CURRENT_USER\Environment Path
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment Path
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\CMake 2.8\bin;