arman29
18-12-2014, 08:07
Добрый день!
Ситуация: используется Java и в основном хаотично установлены разные версии на разных компах, на некоторых установлены сразу несколько одновременно, например 7.0.45 и 7.0.60
Помогите, пожалуйста, исправить батник, который проверял бы установлена ли старая версия, удалял бы ее и ставил бы новую взависимости от архитектуры системы. Написал свой, но каждый раз он выдает окно "This action is only valid for products that are currently installed", т.е. если не находит, что в системе была установлена определенная версия программы. А мне как-то хочется без всяких там всплывающих окон проверить/удалить старые версии Java и поставить новую
ECHO OFF
rem Checking if Java x86 v7.0.450 is installed
:32UNINST745
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83217045FF} /qb
) ELSE (
goto 64UNINST745
)
ECHO OFF
rem Checking if Java x64 v7.0.450 is installed
:64UNINST745
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83217045FF} /qb
) ELSE (
goto :32UNINST706
)
ECHO OFF
rem Checking if Java x86 v7.0.60 is installed
:32UNINST706
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83217006FF} /qb
) ELSE (
goto 64UNINST706
)
ECHO OFF
rem Checking if Java x64 v7.0.60 is installed
:64UNINST706
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F86417006FF} /qb
) ELSE (
goto 32UNINST800
)
rem Checking if Java x86 v8.00 is installed
:32UNINST800
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83218000FF} /qb
) ELSE (
goto 64UNINST800
)
rem Checking if Java x64 v8.00 is installed
:64UNINST800
IF EXIST "C:\Program Files (x86)\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F86418000FF} /qb
) ELSE (
goto 3264INST825
)
rem Installing Java x86/x64 v8.25
:3264INST825
IF EXIST "C:\Program Files (x86)" (
start /wait .\jre-8u25-windows-x64.exe /s
) ELSE (
start /wait .\jre-8u25-windows-x86.exe /s
)
EXIT
Ситуация: используется Java и в основном хаотично установлены разные версии на разных компах, на некоторых установлены сразу несколько одновременно, например 7.0.45 и 7.0.60
Помогите, пожалуйста, исправить батник, который проверял бы установлена ли старая версия, удалял бы ее и ставил бы новую взависимости от архитектуры системы. Написал свой, но каждый раз он выдает окно "This action is only valid for products that are currently installed", т.е. если не находит, что в системе была установлена определенная версия программы. А мне как-то хочется без всяких там всплывающих окон проверить/удалить старые версии Java и поставить новую
ECHO OFF
rem Checking if Java x86 v7.0.450 is installed
:32UNINST745
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83217045FF} /qb
) ELSE (
goto 64UNINST745
)
ECHO OFF
rem Checking if Java x64 v7.0.450 is installed
:64UNINST745
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83217045FF} /qb
) ELSE (
goto :32UNINST706
)
ECHO OFF
rem Checking if Java x86 v7.0.60 is installed
:32UNINST706
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83217006FF} /qb
) ELSE (
goto 64UNINST706
)
ECHO OFF
rem Checking if Java x64 v7.0.60 is installed
:64UNINST706
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F86417006FF} /qb
) ELSE (
goto 32UNINST800
)
rem Checking if Java x86 v8.00 is installed
:32UNINST800
IF EXIST "C:\Program Files\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83218000FF} /qb
) ELSE (
goto 64UNINST800
)
rem Checking if Java x64 v8.00 is installed
:64UNINST800
IF EXIST "C:\Program Files (x86)\Java" (
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F86418000FF} /qb
) ELSE (
goto 3264INST825
)
rem Installing Java x86/x64 v8.25
:3264INST825
IF EXIST "C:\Program Files (x86)" (
start /wait .\jre-8u25-windows-x64.exe /s
) ELSE (
start /wait .\jre-8u25-windows-x86.exe /s
)
EXIT