Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скрипт для WIM архивов. Создание-редактирование.

Ответить
Настройки темы
CMD/BAT - [решено] Скрипт для WIM архивов. Создание-редактирование.
x0r x0r вне форума

Забанен


Сообщения: 795
Благодарности: 137

Профиль | Цитировать


Скрипт для удобной работы с wim архивами програмкой imagex.exe в Total Commander. Монтирует образ в папку, а папку в диск(subst) и открывает в TotalCommander-e.
Монтировать можно только для чтения или с возм. записи(для чего собсна и задумывалось). Размонтировать тоже, с сохранением результатов или без(понятно, что если был смонтирован read-only, то в любом случае ничего не сохранится).
Т.к. программа imagex.exe работает с драйвером, то есть проверочка на драйвер и если не установлен, то ставится. Потом монтируется образ.
В архиве все есть: программа и драйверы для работы в WinXP и W7. Выше не пробовал. x64 тоже проверял только в WinXP.

Скрипт принимает путь к wim архиву и подключает как диск

Код: Выделить весь код
@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

Отправлено: 14:47, 12-11-2016

 

Старожил


Сообщения: 168
Благодарности: 40

Профиль | Отправить PM | Цитировать


x0r, вы не пробовали wimlib?

-------
ОЗ


Отправлено: 10:30, 13-11-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

x0r x0r вне форума Автор темы

Забанен


Сообщения: 795
Благодарности: 137

Профиль | Цитировать


не, не слышал. Хорошая штука, забрал. Есть тут штука /optimise полезная. А то странные эти WIM архивы: при редактировании-удалении размер растет. Доводишь до нужного(работает как надо), а потом надо перепаковывать в новый архив, шобы размер уменьшить. Эта wimlib вроде справляется, уменьшает готовый архив.
буду пробовать.

Отправлено: 16:43, 14-11-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата x0r:
А то странные эти WIM архивы: при редактировании-удалении размер растет. »
Как работают базы данных — слышали? С реестром доводилось работать?

Отправлено: 20:27, 14-11-2016 | #4

x0r x0r вне форума Автор темы

Забанен


Сообщения: 795
Благодарности: 137

Профиль | Цитировать


Не-а я тока ручками и трошки батниками. Если есть описание особенностей, причин "почему" - яб почитал.

Отправлено: 22:31, 14-11-2016 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


x0r, причина ровно одна — производительность. Особенности: данные реально не удаляются, а лишь помечаются как удалённые; запись единицы данных увеличенного объёма (по отношению к старой) производится как пометка на удаление старой единицы данных и добавление новой единицы данных. Варианты реализации могут отличаться друг от друга в зависимости от формата базы и используемой модели (реляционная, иерархическая) данных. Для реального удаления (и, соответственно, уплотнения данных) используется отдельная, занимающая достаточно много времени, операция, поскольку требует чтения и записи всего объёма данных.

Отправлено: 00:19, 15-11-2016 | #6

x0r x0r вне форума Автор темы

Забанен


Сообщения: 795
Благодарности: 137

Профиль | Цитировать


Понял. Удивляться больше не буду. буду читать, изучать. Ключевых слов дадено достаточно.
Благодарю.

Отправлено: 01:51, 15-11-2016 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скрипт для WIM архивов. Создание-редактирование.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Общее - [решено] Редактирование образа WIM бородач Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 6 08-10-2015 12:28
8 / 2012 - Создание wim-образа для последующего развертывания The_Immortal Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 4 24-03-2015 11:49
CMD/BAT - [решено] Подправьте скрипт для пакетной распаковки rar архивов Aleksander.Ruban@fb Скриптовые языки администрирования Windows 3 24-08-2012 23:04
Создание SFX-архивов для автоматической установки FlexAdmin Автоматическая установка приложений 14 11-03-2012 13:51
скрипт для управления wim-файлом mamont1 AutoIt 3 29-08-2010 21:32




 
Переход