#bat 利用bat脚本自动配置/删除JAVA环境变量

目录

  • 自动配置变量
  • 清除JAVA环境变量

自动配置变量

@echo off
echo %path% >>default.path.bak.txt
set JAVA_HOME=%~dp0%
set JAVA_HOME=%JAVA_HOME:~0,-1%

:: 先删除环境变量中的JAVA_HOME、CLASSPATH、Path中的bin路径
set jdkPath=%JAVA_HOME%\bin
set jrePath=%JAVA_HOME%\jre\bin

setlocal enableDelayedExpansion

set pathStr=%path%
set nPath=hello

:Loop
for /f "delims=; tokens=1,*" %%a in ("%pathStr%") do (
  if not "%%a"=="%jdkPath%" if not "%%a"=="%jrePath%" (
    if "!nPath!"=="hello" (
      set nPath="%%a"
    ) else (
      set nPath=%nPath%;"%%a"
    )
  )
  set pathStr=%%b
  goto Loop
)

set pathStr=%nPath:"=%

set CLASSPATH=.;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar;
set jdkPath=%%JAVA_HOME%%\bin
set jrePath=%%JAVA_HOME%%\jre\bin
set newPath="%pathStr%;%jdkPath%;%jrePath%"


setx JAVA_HOME "%JAVA_HOME%" /m
setx CLASSPATH "%CLASSPATH%" /m
setx Path %newPath% /m

清除JAVA环境变量

@echo off
echo %path% >>default.path.bak.txt
set pathStr=%path%

set JAVA_HOME=%~dp0%
set JAVA_HOME=%JAVA_HOME:~0,-1%
set jdkPath=%JAVA_HOME%\bin
set jrePath=%JAVA_HOME%\jre\bin

wmic environment where "name='JAVA_HOME'" delete
wmic environment where "name='CLASSPATH'" delete

setlocal enableDelayedExpansion

set nPath=hello

:Loop
for /f "delims=; tokens=1,*" %%a in ("%pathStr%") do (
  if not "%%a"=="%jdkPath%" if not "%%a"=="%jrePath%" (
      if "!nPath!"=="hello" (
        set nPath="%%a"
      ) else (
        set nPath=%nPath%;"%%a"
      )
  )
  set pathStr=%%b
  goto Loop
)

set nPath=%nPath:"=%
setx Path "%nPath%" /m >nul

你可能感兴趣的:(BAT脚本,batch,cmd)