我正在尝试使用批处理文件升级Java,并且需要更改PATH系统变量以反映该更改。在PATH变量的开头,我有
C:\Program Files\Java\jdk1.8.0_51;...
我需要将jdk的值更改为jdk1.8.0_60。我对命令行和批处理文件相对陌生,可能会有所误解。以下是我的尝试:
我有几个变量。
jVersion=1.8.0_
javaPath=C:\Program Files\Java
newVersion=60
oldVersion=51
我发现一些关于如何用字面值替换字符串的内容,例如:
set PATH=%PATH:1.8.0_51=1.8.0_60%
但是我无法将它与变量一起使用...
set PATH=%%PATH:%jVersion%%oldVersion%=%jVersion%%newVersion%%%
我不确定外面是否需要两个 %,还是只需要一个,或者是感叹号。我对延迟扩展的知识并不十分自信。我也不知道这是否可行。
额外地,我真的希望能够取出 ...\Java\ 后面的任何内容,并用我的新值替换它。这只是为了防止我不知道 jdk 的 PATH 变量中的值。
谢谢!
编辑:通过在修改后的代码之前使用
call
命令,我成功让它工作了。call set PATH=%PATH:%jVersion%%oldVersion%=%jVersion%%newVersion%%
我仍在努力想出如何使它通用,将...\jdk
后面的任何内容更改为我的值。
call
... - aschipfl%%
扩展,对于整个表达式使用延迟的!!
扩展; - aschipfl!
方法确实起作用了。谢谢! - Alex Johnson