但是代码不起作用,%JAVA_HOME%的目录一直为%JAVA_HOME8%
时间: 2024-04-10 18:27:48 浏览: 104
很抱歉,我之前提供的代码有一处错误。请尝试以下修正后的代码:
```batch
@echo off
setlocal enabledelayedexpansion
REM 获取 JAVA_HOME 的目录
for /f "delims=" %%i in ('echo %JAVA_HOME%') do set "java_home_dir=%%i"
REM 判断 JAVA_HOME 的目录是否为 Java 8
if "%java_home_dir%"=="%JAVA_HOME8%" (
set "JAVA_HOME=%JAVA_HOME12%"
echo JDK 12 is set as the current version.
) else if "%java_home_dir%"=="%JAVA_HOME12%" (
set "JAVA_HOME=%JAVA_HOME8%"
echo JDK 8 is set as the current version.
) else (
echo Current JDK version is neither Java 8 nor Java 12.
)
endlocal
```
在这个修正后的代码中,我们添加了 `enabledelayedexpansion` 来启用延迟变量扩展。这样,当我们在 `for` 循环中获取 `JAVA_HOME` 的值时,可以正确地将其分配给 `java_home_dir` 变量。
请确保在运行此脚本之前将 `%JAVA_HOME8%` 和 `%JAVA_HOME12%` 设置为正确的 Java 8 和 Java 12 目录路径。然后运行脚本,它将根据 `%JAVA_HOME%` 的目录进行判断,并根据判断结果修改 `%JAVA_HOME%` 的目录,并输出相应的消息。
如果问题仍然存在,请提供更多关于问题的详细信息,以便我能够更好地帮助你解决。
阅读全文