我正在编写一个批处理文件,我需要在我的系统中获取已安装jre的当前版本,然后根据它做出决定 - 我知道我可以通过查询注册表来获取当前版本。以下命令给出了以下输出 -
reg query "HKLM\Software\JavaSoft\Java Runtime Environment"
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment
Java7FamilyVersion REG_SZ 1.7.0
CurrentVersion REG_SZ 1.7
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.7
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.7.0
但是我无法获得使用
解析此输出的值1.7for /f "tokens=3" %%i in ('Command') do echo %%i
我只想要当前版本的“1.7”,然后比较它并做出决定。我无法理解会有什么选择。 任何善于批处理命令的人都可以帮我解决这个问题吗?任何帮助将不胜感激。我还尝试解析java -version的输出并获取值。
答案 0 :(得分:2)
您可以使用“java -version”命令并过滤/解析输出。
rem取“java -version”输出并过滤包含“Runtime Environme”的行 nt“。取第6个字并在”_“之前回显部分
for /f "tokens=1-10" %%a in ('java -version 2^>^&1 ^| find "Runtime Environme
nt"') do for /f "delims=_" %%x in ('echo %%f') do echo %%x