批量脚本安装

时间:2014-05-26 15:03:59

标签: java batch-file cmd

我为java安装编写了一个简单的批处理

for /f "tokens=3" %%c in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" /v Java7FamilyVersion') do set java_version=%%c
if %java_version%==1.7.0_55 (goto end) else (goto install)

:end
exit

:install
msiexec.exe /I "%~DP0jre1.7.0_55.msi" /q /norestart /L "%windir%\log\Oracle_SUN_JAVA7_SE_Up55_DE_x86_0253_Install.log"

我想检查是否已安装我要安装的版本,如果是,则应跳过安装。 当根本没有安装Java时,当然缺少注册表项,我收到错误。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

添加了字符串比较的引用,java_version的默认值,错误捕获和简化的if语句。试试这个。

set "java_version=0"
for /f "tokens=3" %%C in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" /v Java7FamilyVersion 2^>nul') do set "java_version=%%C"
if not "%java_version%"=="1.7.0_55" goto install
exit

:install
msiexec.exe /I "%~DP0jre1.7.0_55.msi" /q /norestart /L "%windir%\log\Oracle_SUN_JAVA7_SE_Up55_DE_x86_0253_Install.log"