我想合并下面的批处理文件。必须有一种更简单的方法来检测当前安装的Java版本,如果它是最新的转换,则不安装最新版本。 合并这2个批量查询?
我很想给了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)来搜索java版本,如果它不符合最新版本,请转到我的第二部分代码中安装部分?
我不知道如何将它包含在for/f部分。
任何帮助表示赞赏
'java -version'怎么样? – adarshr