Grachevsky
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору @echo off chcp 866 >nul setlocal enabledelayedexpansion set "WimPath=g:\ISO" set "MountDir=e:\mnt" set "Updates=Updates.ini" pushd "%~dp0" set Flag=true for /f "usebackq tokens=*" %%U in ("%Updates%") do ( if not exist "%%U" ( if !Flag!==true set Flag=false echo Не найдено обновление "%%U" ) ) if %Flag%==false (call :Line & echo Работа будет прекращена. & echo. & pause & exit /b) pushd "%WimPath%" 2>nul || (echo Не найден каталог с образами для обработки. Работа будет прекращена. & echo. & pause & exit /b) :Start call :Line set Count=0 for %%F in (*.wim) do ( set /a Count+=1 set "a= !Count!" set "a=!a:~-3!" echo !a!: %%F ) if %Count%==0 (echo Не найдено .wim файлов для обработки. Работа будет прекращена. & echo. & pause & exit /b) call :Line call :WimInput echo. echo %WimFile% call :Line echo. DISM /Get-WimInfo /WimFile:%WimFile% | findstr /i "Index Name Индекс Имя" call :Line call :IndexInput echo. echo %WimFile% echo %Name% call :Line set Answer=n set /p "Answer=Будут интегрированы обновления. Продолжить? (Y-да, иначе-нет): " echo. if /i "%Answer%" NEQ "y" goto :Start echo Монтируется образ.. call :Line pushd "%MountDir%" 2>nul && popd || md "%MountDir%" Dism /Mount-Wim /WimFile:"%WimFile%" /Index:%Index% /MountDir:"%MountDir%" /ScratchDir:"%Temp%" echo. echo Устанавливаются обновления.. call :Line pushd "%~dp0" for /f "usebackq tokens=*" %%U in ("%Updates%") do ( Dism /Image:"%MountDir%" /Add-Package /PackagePath:"%%U" /ScratchDir:"%Temp%" ) REM goto :End echo. echo Очистка образа.. call :Line Dism /Image:%MountDir% /Cleanup-Image /StartComponentCleanup /ResetBase /ScratchDir:"%Temp%" REM goto :End echo. echo Сохранение образа.. call :Line set T=%time:~0,5% set T=%T::=-% set "UpdatedWim=%WimFile:~0,-4%_%date:~0,5%_%T%.wim" pushd "%WimPath%" if exist "%UpdatedWim%" del /q "%UpdatedWim%" Dism /Capture-Image /ImageFile:"%UpdatedWim%" /CaptureDir:"%MountDir%" /Name:"%Name%" /Compress:fast /ScratchDir:"%Temp%" echo. echo Демонтирование образа.. call :Line Dism /Unmount-Wim /MountDir:"%MountDir%" /Discard :End echo. echo Выполено. call :Line echo Для завершения нажмите любую клавишу.. pause >nul exit /b :WimInput set Task=0 set /p "Task=Выберите .wim для обработки: " set Count=0 for %%F in (*.wim) do ( set /a Count+=1 if %Task%==!Count! ( set "WimFile=%%F" exit /b ) ) goto :WimInput :IndexInput set Task=0 set /p "Task=Выберите индекс редакции для обработки: " set Count=0 for /f "tokens=2 delims=: " %%A in ('DISM /Get-WimInfo /WimFile:"%WimFile%" ^| findstr /i "Index Индекс"') do ( set /a Count+=1 if %Task%==!Count! ( set "Index=%%A" call :NameGet exit /b ) ) goto :IndexInput :NameGet for /f "delims=:" %%A in ('DISM /Get-WimInfo /WimFile:"%WimFile%" ^| findstr /inrc:"Index.*%Index%" /c:"Индекс.*%Index%"') do set Skip=%%A for /f "Skip=%Skip% tokens=1* delims=: " %%A in ('DISM /Get-WimInfo /WimFile:"%WimFile%"') do ( set Name=%%B exit /b ) exit /b :Line echo ---------------------------------------------------------------- exit /b
Тон смените. | Всего записей: 26 | Зарегистр. 05-03-2020 | Отправлено: 13:16 18-03-2020 | Исправлено: KLASS, 07:50 19-03-2020 |
|