|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Батник для удаления старых версий Java и установки новой |
|
|
CMD/BAT - [решено] Батник для удаления старых версий Java и установки новой
|
Новый участник Сообщения: 15 |
Добрый день!
Ситуация: используется 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 |
|
Отправлено: 08:07, 18-12-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:25, 18-12-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать спасибо большое, но, если честно, не работал с командой "wmic.exe", боюсь ошибиться. Правильно ли так будет:
ECHO OFF rem Checking if Java x86 v7.0.450 is installed :32UNINST745 IF EXIST "C:\Program Files\Java" ( wmic.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" ( wmic.exe /X{26A24AE4-039D-4CA4-87B4-2F83217045FF} /qb ) ELSE ( goto :32UNINST706 ) |
Отправлено: 08:40, 18-12-2014 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Неправильно. Сделайте ровно то, о чём я прошу.
Откройте командную строку, наберите: нажмите «Enter». После того, как вновь появится приглашение командной строки, откройте текстовый файл «c:\Out.txt» в Блокноте, найдите строку/строки, относящиеся к Java, и скопируйте её/их сюда. Не весь файл, а только строки, относящиеся к Java. Проделайте это для каждой версии Java. У меня нет ни одной версии Java, и я не планирую их устанавливать. Посему мне понадобится получить потребные данные от Вас. После этого я, возможно, смогу сделать потребное Вам, проанализировав полученные строки. |
Отправлено: 09:12, 18-12-2014 | #4 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Iska,
спасибо, что отозвались и пришли на помощь. Решение уже нашел - http://itme.info/install-java-with-remove-old-products/ Изменил код под себя и все работает: @ECHO OFF REM Killing all processes and services net stop JavaQuickStarterService taskkill /F /IM iexplore.exe /T taskkill /F /IM jqs.exe /T taskkill /F /IM jucheck.exe /T taskkill /F /IM javaw.exe /T REM ============ Java Deletion ============ REM Сохранение в файл идентификаторов (GUID) установленных пакетов Java в формате установщика Windows Installer SET Query=name like 'Java 7%%' OR name like 'Java(TM) 6%%' OR name like 'J2SE Runtime Environment%%' OR name like 'Java 2 Runtime Environment%%' OR name like 'Java Auto Updater%%' wmic product where "%Query%" get IdentifyingNumber > "%TEMP%\delJava_1.txt" REM Сохранение только GUID пакетов во второй файл TYPE "%TEMP%\delJava_1.txt" | FINDSTR {........-....-....-....-............} > "%TEMP%\delJava_2.txt" REM Цикл удаления пакетов FOR /f "tokens=*" %%a IN (%TEMP%\delJava_2.txt) DO (msiexec /x %%a /qn /norestart) REM Удаление временных файлов IF EXIST "%TEMP%\delJava_1.txt" DEL "%TEMP%\delJava_1.txt" IF EXIST "%TEMP%\delJava_2.txt" DEL "%TEMP%\delJava_2.txt" rem Installing Java x86/x64 v8.25 IF EXIST "C:\Program Files (x86)" ( start /wait .\jre-8u25-windows-x64.exe /s /norestart ) ELSE ( start /wait .\jre-8u25-windows-x86.exe /s /norestart ) EXIT |
|
Отправлено: 11:52, 18-12-2014 | #5 |
![]() Ветеран Сообщения: 2156
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 23:26, 22-12-2014 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Anton04, а как быть с «Name», которое «J2SE Runtime Environment»? И к тому же, данный вариант удалит все версии, в том числе, и последнюю — не так ли?
|
Отправлено: 23:55, 22-12-2014 | #7 |
![]() Ветеран Сообщения: 2156
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() Цитата Iska:
|
||
------- Отправлено: 16:48, 23-12-2014 | #8 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Цитата Anton04:
|
|
Отправлено: 17:51, 23-12-2014 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Anton04:
…name like 'Java 7%%' OR name like 'Java(TM) 6%%' OR name like 'J2SE Runtime Environment%%' OR name like 'Java 2 Runtime Environment%%' OR name like 'Java Auto Updater%%' Цитата Anton04:
Цитата Anton04:
|
|||
Отправлено: 18:36, 23-12-2014 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Скрипт для удаления старых файлов и папок из определенной папки | avfiga | Скриптовые языки администрирования Windows | 71 | 07-01-2023 18:50 | |
CMD/BAT - батник для удаления файла... | Bara1gin | Скриптовые языки администрирования Windows | 5 | 06-12-2014 15:49 | |
CMD/BAT - [решено] Нужен Батник для удаления части строки | d_coder@vk | Скриптовые языки администрирования Windows | 1 | 18-03-2014 10:02 | |
CMD/BAT - [решено] батник для автоматического удаления сетевых папок | vanoman | Скриптовые языки администрирования Windows | 22 | 23-10-2013 16:02 | |
CMD/BAT - Батник для удаления следов usb из реестра | zedco | Скриптовые языки администрирования Windows | 0 | 26-03-2010 17:30 |
|