x0r
12-11-2016, 14:47
Скрипт для удобной работы с wim архивами програмкой imagex.exe в Total Commander. Монтирует образ в папку, а папку в диск(subst) и открывает в TotalCommander-e.
Монтировать можно только для чтения или с возм. записи(для чего собсна и задумывалось). Размонтировать тоже, с сохранением результатов или без(понятно, что если был смонтирован read-only, то в любом случае ничего не сохранится).
Т.к. программа imagex.exe работает с драйвером, то есть проверочка на драйвер и если не установлен, то ставится. Потом монтируется образ.
В архиве все есть: программа и драйверы для работы в WinXP и W7. Выше не пробовал. x64 тоже проверял только в WinXP.
@echo off
rem для работы с WIM архивами. Монтирует образы WIM в разных режимах(RO\RW) для изменения или просмотра.
rem на вход скрипту - путь к нужному wim архиву, затем выбрать что делать(монтировать/демонтировать) и дальше
rem диск для subst куда будет подключен каталог с архивом.
rem для демонтажа - тоже путь к архиву и выбрать с записью изменений(WR) или без(5).
rem Все делалось в/для TotalCommander
chcp 866 > nul
if "%1"=="" goto :NoParam
cd /d "%~dp0"
set imgpath=%1
set fpath=%~dp1
set fname=%~n1
set mfolder=%ALLUSERSPROFILE%\WIMmount
rem Указать диск для subst
set vdisk=M
rem echo %1
rem Проверка - установлен ли драйвер WimFltr.sys и если нет - то устанавливает
rem нужна только один раз . Если драйвер установлен - можно закоментировать НАХ !
if not exist "%ProgramFiles(x86)%" goto :CHECK_DRIVER_x86
goto :CHECK_DRIVER_x64
:A
echo ^ ----------------------------------------------------
echo ^ ^| ^|
echo ^ ^| ¤¤¤ Что будем делать (mount/unmount) ? ¤¤¤ ^|
echo ^ ^| ^|
echo ^ ^| 1 - Mount Image ^|
echo ^ ^| 5 - UnMount Image ( Don`t Save Changes ) ^|
echo ^ ^| 9 - Mount Read/Write ^|
echo ^ ^| WR - UnMount ( WRITE Changes ) ^|
echo ^ ----------------------------------------------------
subst
echo Q - exit
set /p S=Сделайте выбор (1 , 5 , 9 , WR)
if /i %S% EQU 1 call :MOUNTRO
if /i %S% EQU 5 call :UMOUNT
if /i %S% EQU 9 call :MOUNTRW
if /i %S% EQU WR call :UMOUNTWR
if /i %S% EQU Q call :EXIT
echo ^ ----------------------------------------------
echo ^ ^| ERROR ! not a valid choice ! ^|
echo ^ ----------------------------------------------
pause
goto A
:MOUNTRO
echo Please Enter Drive letter for "subst" (Virtual Disk)
set /p vdisk=just Letter: M ; o ; W
if not exist "%mfolder%\%fname%" md "%mfolder%\%fname%"
imagex.exe /mount %imgpath% 1 "%mfolder%\%fname%"
if %ERRORLEVEL% neq 0 echo Что-то здесь не так ! Ошибочка - Imagex ERRORLEVEL: %ERRORLEVEL%&pause&exit
if not exist %vdisk%:\nul subst %vdisk%: "%mfolder%"
start "" %COMMANDER_PATH%\TOTALCMD.EXE /O /T /S /R=%vdisk%:\
exit
:MOUNTRW
echo Please Enter Drive letter for "subst" (Virtual Disk)
set /p vdisk=just Letter: M ; o ; W
if not exist "%mfolder%\%fname%" md "%mfolder%\%fname%"
imagex.exe /mountrw %imgpath% 1 "%mfolder%\%fname%"
if %ERRORLEVEL% neq 0 echo Что-то здесь не так ! Ошибочка - Imagex ERRORLEVEL: %ERRORLEVEL%&pause&exit
if not exist %vdisk%:\nul subst %vdisk%: %mfolder%
start "" %COMMANDER_PATH%\TOTALCMD.EXE /O /T /S /R=%vdisk%:\
exit
:UMOUNT
imagex.exe /unmount "%mfolder%\%fname%" && rd /s /q "%mfolder%\%fname%"
pause
exit
:UMOUNTWR
imagex.exe /unmount /commit "%mfolder%\%fname%" && rd /s /q "%mfolder%\%fname%"
pause
exit
rem **************************************************************************************************** **********************
:CHECK_DRIVER_x86
driverquery|find /i "wimfltr" > nul
if %ERRORLEVEL%==0 goto A else (
echo *************************************************************
echo ^ У Вас не установлен необходимый для работы драйвер !
echo ^ Сейчас поставлю... ;-]
echo *************************************************************
if exist %ProgramData% (
start/wait %SYSTEMROOT%\System32\InfDefaultInstall.exe %~dp0x86\wimfltr.inf
) else (
start/wait %SYSTEMROOT%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %~dp0x86\wimfltr.inf
)
echo Подождите пока закончится процесс установки драйвера ...
echo Когда закроется окно устaновщика нажмите любую клавишу...
)
pause
goto A
rem **************************************************************************************************** **********************
:CHECK_DRIVER_x64
driverquery|find /i "wimfltr" > nul
if %ERRORLEVEL%==0 goto A else (
echo *************************************************************
echo ^ У Вас не установлен необходимый для работы драйвер !
echo ^ Сейчас поставлю... ;-]
echo *************************************************************
if exist %ProgramData% (
start/wait %SYSTEMROOT%\System32\InfDefaultInstall.exe %~dp0x64\wimfltr.inf
) else (
start/wait %SYSTEMROOT%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %~dp0x64\wimfltr.inf
)
echo Подождите пока закончится процесс установки драйвера ...
echo Когда закроется окно устaновщика нажмите любую клавишу...
)
pause
goto A
rem **************************************************************************************************** **********************
:NoParam
echo ^===================================
echo %~nx0. Command Line ERROR "%*"
echo ====================================
exit /b 1
:EXIT
exit
+ скриптег для создания WIM архивов из папки. Можно добавить в конт. меню или кнопку в TotalCommander. В путях не должно быть пробелов.
imagex+scripts download (http://gavitex.com/share/lqm1p5z8h)
Монтировать можно только для чтения или с возм. записи(для чего собсна и задумывалось). Размонтировать тоже, с сохранением результатов или без(понятно, что если был смонтирован read-only, то в любом случае ничего не сохранится).
Т.к. программа imagex.exe работает с драйвером, то есть проверочка на драйвер и если не установлен, то ставится. Потом монтируется образ.
В архиве все есть: программа и драйверы для работы в WinXP и W7. Выше не пробовал. x64 тоже проверял только в WinXP.
@echo off
rem для работы с WIM архивами. Монтирует образы WIM в разных режимах(RO\RW) для изменения или просмотра.
rem на вход скрипту - путь к нужному wim архиву, затем выбрать что делать(монтировать/демонтировать) и дальше
rem диск для subst куда будет подключен каталог с архивом.
rem для демонтажа - тоже путь к архиву и выбрать с записью изменений(WR) или без(5).
rem Все делалось в/для TotalCommander
chcp 866 > nul
if "%1"=="" goto :NoParam
cd /d "%~dp0"
set imgpath=%1
set fpath=%~dp1
set fname=%~n1
set mfolder=%ALLUSERSPROFILE%\WIMmount
rem Указать диск для subst
set vdisk=M
rem echo %1
rem Проверка - установлен ли драйвер WimFltr.sys и если нет - то устанавливает
rem нужна только один раз . Если драйвер установлен - можно закоментировать НАХ !
if not exist "%ProgramFiles(x86)%" goto :CHECK_DRIVER_x86
goto :CHECK_DRIVER_x64
:A
echo ^ ----------------------------------------------------
echo ^ ^| ^|
echo ^ ^| ¤¤¤ Что будем делать (mount/unmount) ? ¤¤¤ ^|
echo ^ ^| ^|
echo ^ ^| 1 - Mount Image ^|
echo ^ ^| 5 - UnMount Image ( Don`t Save Changes ) ^|
echo ^ ^| 9 - Mount Read/Write ^|
echo ^ ^| WR - UnMount ( WRITE Changes ) ^|
echo ^ ----------------------------------------------------
subst
echo Q - exit
set /p S=Сделайте выбор (1 , 5 , 9 , WR)
if /i %S% EQU 1 call :MOUNTRO
if /i %S% EQU 5 call :UMOUNT
if /i %S% EQU 9 call :MOUNTRW
if /i %S% EQU WR call :UMOUNTWR
if /i %S% EQU Q call :EXIT
echo ^ ----------------------------------------------
echo ^ ^| ERROR ! not a valid choice ! ^|
echo ^ ----------------------------------------------
pause
goto A
:MOUNTRO
echo Please Enter Drive letter for "subst" (Virtual Disk)
set /p vdisk=just Letter: M ; o ; W
if not exist "%mfolder%\%fname%" md "%mfolder%\%fname%"
imagex.exe /mount %imgpath% 1 "%mfolder%\%fname%"
if %ERRORLEVEL% neq 0 echo Что-то здесь не так ! Ошибочка - Imagex ERRORLEVEL: %ERRORLEVEL%&pause&exit
if not exist %vdisk%:\nul subst %vdisk%: "%mfolder%"
start "" %COMMANDER_PATH%\TOTALCMD.EXE /O /T /S /R=%vdisk%:\
exit
:MOUNTRW
echo Please Enter Drive letter for "subst" (Virtual Disk)
set /p vdisk=just Letter: M ; o ; W
if not exist "%mfolder%\%fname%" md "%mfolder%\%fname%"
imagex.exe /mountrw %imgpath% 1 "%mfolder%\%fname%"
if %ERRORLEVEL% neq 0 echo Что-то здесь не так ! Ошибочка - Imagex ERRORLEVEL: %ERRORLEVEL%&pause&exit
if not exist %vdisk%:\nul subst %vdisk%: %mfolder%
start "" %COMMANDER_PATH%\TOTALCMD.EXE /O /T /S /R=%vdisk%:\
exit
:UMOUNT
imagex.exe /unmount "%mfolder%\%fname%" && rd /s /q "%mfolder%\%fname%"
pause
exit
:UMOUNTWR
imagex.exe /unmount /commit "%mfolder%\%fname%" && rd /s /q "%mfolder%\%fname%"
pause
exit
rem **************************************************************************************************** **********************
:CHECK_DRIVER_x86
driverquery|find /i "wimfltr" > nul
if %ERRORLEVEL%==0 goto A else (
echo *************************************************************
echo ^ У Вас не установлен необходимый для работы драйвер !
echo ^ Сейчас поставлю... ;-]
echo *************************************************************
if exist %ProgramData% (
start/wait %SYSTEMROOT%\System32\InfDefaultInstall.exe %~dp0x86\wimfltr.inf
) else (
start/wait %SYSTEMROOT%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %~dp0x86\wimfltr.inf
)
echo Подождите пока закончится процесс установки драйвера ...
echo Когда закроется окно устaновщика нажмите любую клавишу...
)
pause
goto A
rem **************************************************************************************************** **********************
:CHECK_DRIVER_x64
driverquery|find /i "wimfltr" > nul
if %ERRORLEVEL%==0 goto A else (
echo *************************************************************
echo ^ У Вас не установлен необходимый для работы драйвер !
echo ^ Сейчас поставлю... ;-]
echo *************************************************************
if exist %ProgramData% (
start/wait %SYSTEMROOT%\System32\InfDefaultInstall.exe %~dp0x64\wimfltr.inf
) else (
start/wait %SYSTEMROOT%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %~dp0x64\wimfltr.inf
)
echo Подождите пока закончится процесс установки драйвера ...
echo Когда закроется окно устaновщика нажмите любую клавишу...
)
pause
goto A
rem **************************************************************************************************** **********************
:NoParam
echo ^===================================
echo %~nx0. Command Line ERROR "%*"
echo ====================================
exit /b 1
:EXIT
exit
+ скриптег для создания WIM архивов из папки. Можно добавить в конт. меню или кнопку в TotalCommander. В путях не должно быть пробелов.
imagex+scripts download (http://gavitex.com/share/lqm1p5z8h)