我想合并以下批处理文件。我必须有一种更简单的方法来检测当前安装的 Java 版本,如果它是最新的 goto 结束如果没有安装最新版本。
我很想使用 for/f 命令,并且在网上也找到了这个:
@echo off
setlocal
set VERSION7="1.7.0_25"
for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
@echo Output: %%g
set JAVAVER=%%g
)
set JAVAVER=%JAVAVER:"=%
@echo Output: %JAVAVER%
for /f "delims=. tokens=1-3" %%v in ("%JAVAVER%") do (
@echo Major: %%v
@echo Minor: %%w
@echo Build: %%x
)
endlocal
我当前安装 Java 运行时的脚本是:
IF exist %windir%\gpologs\jre_1.7.21.x86.txt ( goto eof ) ELSE ( goto Q1 )
:Q1
Reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{26A24AE4-039D-4CA4-87B4-2F86417025FF}"
if "%ErrorLevel%"=="0" ( goto eof ) ELSE ( goto Q2 )
:Q2
Reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{26A24AE4-039D-4CA4-87B4-2F83217025FF}"
if "%ErrorLevel%"=="0" ( goto eof ) ELSE ( goto Q3 )
:Q3
Reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{26A24AE4-039D-4CA4-87B4-2F83217021FF}"
if "%ErrorLevel%"=="0" ( goto eof ) ELSE ( goto Install )
:Install
msiexec /i "\\Sharename\GPOInstalls\Java\Java 1.7.0_21 x86\jre1.7.0_21.msi" /qn
if %ErrorLevel% EQU 0 (
>>"\Sharename\gpolog\jre_1.7.21.x86.csv" echo "%computername%","%date%","%Time%","%ErrorLevel%","Java Runtime 1.7.0_21x86 Installed"
>>"%windir%\GpoLogs\jre_1.7.21.x86.txt" echo "Java Runtime 1.7.0_21x86 Installed"
) else (
>>"\\Sharename\gpolog\JavaInstallErrors.csv" echo "%computername%","%date%","%Time%","%ErrorLevel%","Error trying to install Java 1.7_21x86"
)
:eof
如果第一个代码(for /f)不符合最新版本,我如何使用第一个代码(for / f)搜索代码第二部分中的我的:安装部分?
我不知道如何将其包含在 for/f 部分中。
任何帮助表示赞赏