gpt4 book ai didi

windows - 用于设置 java 主路径/路径的批处理脚本 - 如果尚未包含,则仅添加到路径

转载 作者:可可西里 更新时间:2023-11-01 11:29:53 27 4
gpt4 key购买 nike

我写了一个脚本来设置 java 主路径/路径,用于在不同版本的 java 之间切换。

我只想设置路径,如果它还没有包含到 java 的 bin 文件夹的位置字符串。就像现在一样,如果我多次运行脚本,它会多次添加到路径中。我怎样才能做到这一点?

代码

@echo off  
echo Setting JAVA_HOME
setx -m JAVA_HOME "C:\Program Files\Java\jdk1.8.0"
echo JAVA_HOME: %JAVA_HOME%
echo setting PATH
setx -m PATH "%Path%;%JAVA_HOME%\bin"
echo PATH: %PATH%
echo Display java version
java -version
pause

我可以使用 if 条件吗?

谢谢...

编辑:如果我已经设置了 java_homepath 和 java 7 jdk 的路径,并且在脚本中将其设置为 java jdk 8,它会设置 java_homepath 但是在设置路径时它使用旧的 java homepath 所以我需要运行脚本两次。为什么会这样?如何解决?

编辑2:

@echo off  
echo Setting JAVA_HOME
setx -m JAVA_HOME "C:\Program Files\Java\jdk1.7.0"
echo JAVA_HOME: %JAVA_HOME%
echo setting PATH
for /f "tokens=* delims=" %%a in ("%JAVA_HOME%\bin") do (
if "%%~dpnfs$PATH:a" EQU "" (
setx -m PATH "%Path%;%JAVA_HOME%\bin"
PATH %PATH%;"%JAVA_HOME%\bin"
)
)
echo PATH: %PATH%
echo Display java version
java -version
pause

使用这段代码,它设置了 java_home 而不是路径(因为它使用旧的 java_home),它也不会暂停 cmd 或在 for 循环后显示 java 版本...

最佳答案

echo %path%|find "%JAVA_HOME%\bin" >nul || setx -m PATH "%Path%;%JAVA_HOME%\bin"

写入(echo),检查是否包含字符串(find),不写入屏幕(>nul)如果未找到 (||),则设置变量。

关于windows - 用于设置 java 主路径/路径的批处理脚本 - 如果尚未包含,则仅添加到路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042267/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com