gpt4 book ai didi

java - 使用powershell获取特定的java版本

转载 作者:行者123 更新时间:2023-12-02 10:31:05 25 4
gpt4 key购买 nike

我在将 java 版本作为字符串输出时遇到一些问题。在批处理脚本中,我这样做了:

for /f tokens^=2-5^ delims^=.-_^" %%j in ('%EXTRACTPATH%\Java\jdk_extract\bin\java -fullversion 2^>^&1') do set "JAVAVER=%%j.%%k.%%l_%%m"

输出为:1.8.0_121

现在我想为 PowerShell 执行此操作,但我的输出是:1.8.0_12,我最后错过了一个“1”现在我已经尝试使用修剪和分割,但没有给我任何结果正确的输出有人可以帮助我吗?这就是我使用 PowerShell 得到的结果

$javaVersion = (& $extractPath\Java\jdk_extract\bin\java.exe -fullversion 2>&1)
$javaVersion = "$javaVersion".Trim("java full version """).TrimEnd("-b13")

完整输出为:java完整版本“1.8.0_121-b13”

最佳答案

TrimEnd() 的工作方式与您的预期略有不同:

'1.8.0_191-b12'.TrimEnd('-b12') 

结果:1.8.0_19 也是如此:

'1.8.0_191-b12'.TrimEnd('1-b2')

原因是,TrimEnd() 删除尾随字符集,而不是子字符串。因此 .TrimEnd('-b12') 的意思是:从字符串末尾删除所有出现的 '-b12' 集合中的任何字符。其中包括 '-' 之前的最后一个 '1'

根据您的情况,更好的解决方案是-replace:

'java full version "1.8.0_191-b12"' -replace 'java full version "(.+)-b\d+"','$1'

关于java - 使用powershell获取特定的java版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53608570/

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