gpt4 book ai didi

java - 如何用批处理文件中的变量查找和替换 %PATH% 系统变量中的字符串?

转载 作者:行者123 更新时间:2023-11-30 08:08:38 25 4
gpt4 key购买 nike

我正在尝试使用批处理文件升级 Java,我需要更改 PATH 系统变量以反射(reflect)该更改。在 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%%%

我不知道你是否需要 2% 的外围,或者只需要一个,或者 !'s。我对延迟扩张的知识不是很有信心。我也不知道这是否可能。

作为奖励,我真的很希望能够将...\Java\之后的任何内容替换为我的新值。这只是为了以防万一我不知道 jdk 的 PATH 变量中的值

谢谢!

编辑:通过在我的代码的修改版本之前使用命令 call 我能够让它工作

call set PATH=%PATH:%jVersion%%oldVersion%=%jVersion%%newVersion%%

我仍在尝试弄清楚如何使其通用并将 ...\jdk 之后的内容更改为我拥有的值。

最佳答案

将下面的代码粘贴到一个bat文件中,应该可以解决问题

@echo off

setlocal EnableDelayedExpansion
set jVersion=1.8.0_
set "javaPath=C:\Program Files\Java"
set newVersion=60
set oldVersion=51
set PATH=%jVersion%%oldVersion%
echo before path change : !PATH!
set PATH=!PATH:%jVersion%%oldVersion%=%jVersion%%newVersion%!
echo final path change : !PATH!
pause

关于java - 如何用批处理文件中的变量查找和替换 %PATH% 系统变量中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33040514/

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