Удаление всех версий Java, кроме одной конкретной версии

Для удаления версий Java на работе используем Удалятор Java.

:: Удаление всех версий Java, кроме требуемой версии
:: (c) Paf, 2016

:: Требуемая версия Java
set REQ_JAVA_VER=7.0.670

:: Разрядность ОС
Set _Bitness=x64
set _reg_param=/reg:64
IF %PROCESSOR_ARCHITECTURE% == x86 (
	IF NOT DEFINED PROCESSOR_ARCHITEW6432 (
		Set _Bitness=x86
		set _reg_param=
	)
)

:: Завершение процессов
tasklist | find /i "java.exe" > nul
if %errorlevel% equ 0 taskkill /f /im java.exe

tasklist | find /i "javaw.exe" > nul
if %errorlevel% equ 0 taskkill /f /im javaw.exe

tasklist | find /i "javaws.exe" > nul
if %errorlevel% equ 0 taskkill /f /im javaws.exe

set OLD_DELETED=0

::
:: Удаление других версий Java, кроме требуемой
::
FOR /F "usebackq skip=1" %%I IN (`reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products" %_reg_param%`) DO (

	reg query "%%I\InstallProperties" /v DisplayName %_reg_param% 2>nul | find /I "Java" > nul
	IF !ERRORLEVEL! EQU 0 (
		reg query "%%I\InstallProperties" /v InstallLocation %_reg_param% 2>nul | find /I "\java\jre" > nul
		IF !ERRORLEVEL! EQU 0 (
			reg query "%%I\InstallProperties" /v DisplayVersion %_reg_param% 2>nul | find /I "%REQ_JAVA_VER%" > nul
			IF !ERRORLEVEL! NEQ 0 (
				FOR /F "usebackq skip=2 tokens=1,2,*" %%J IN (`reg query "%%I\InstallProperties" /v UninstallString %_reg_param%`) DO (
					%%L /quiet /norestart
					set OLD_DELETED=1
				)
			)
		)
	)
)

CMD.exe FOR. Примеры использования

Примеры использования команды FOR в командной строке.

Общая информация:

Регистр букв в именах переменных цикла имеет значение, т.е. %%I и %%i — имена разных переменных.

Читать далее CMD.exe FOR. Примеры использования