我为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时,当然缺少注册表项,我收到错误。
有人可以帮我解决这个问题吗?
答案 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"