@setlocal enableextensions enabledelayedexpansion
@echo off
if not "!params!"=="" set "params=%params:"=""%"
pushd "%cd%" && cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% >nul || if %errorlevel%==0 (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )
color 1f
set ver=1.1.1
title Install update by adguard - %ver%
if exist *.cab goto :MAINMENU

:nocab
echo.
echo ===============================================================================
echo Введите полный путь к cab файлу и нажмите Enter
echo ^(введите кавычки  "" если путь содержит пробелы^)
echo ===============================================================================
echo.
set /p CABFILE=
if [%CABFILE%]==[] goto :exit
goto :install

:MAINMENU
cls
echo ===============================================================================
echo Выберите обновление, которое надо установить:
echo ===============================================================================
set nb=0
for /f "delims=" %%f in ('dir /b *.cab') do (
	set /a nb+=1
	set var=!var!!nb!
	echo [!nb!] %%f
	set "cab!nb!=%%f"
)
echo ===============================================================================
choice /N /C %var% /M "Введите номер обновления: "
set CHOICE=%ERRORLEVEL%
set CABFILE=!cab%CHOICE%!

:install
cls
echo ===============================================================================
echo Устанавливаем обновление %CABFILE%...
echo ===============================================================================
echo.
start /w Pkgmgr /ip /m:%CABFILE% /quiet
set ERRORTEMP=%ERRORLEVEL%
IF %ERRORTEMP% NEQ 0 (color 4f
echo.
echo Мы не смогли установить данное обновление %CABFILE%
echo.
echo Нажмите любую клавишу чтобы выйти.
pause >nul
GOTO :exit)
cls
color 2f
echo.
echo Обновление %CABFILE% успешно установлено.
echo.
echo Нажмите любую клавишу чтобы выйти.
pause >nul
GOTO :exit

:exit
exit
