DISM - вывести список компонентов в файл

MAKSOID

Новый пользователь
Сообщения
5
Реакции
2
Последнее редактирование модератором:
MAKSOID написал(а):
Нужна автоматизация команд DISM. Не подскажите как реализовать? Желательно через пакетные файлы (.bat, .cmd)

Команды :
Код:
dism /mount-wim /wimfile:h:\install_wims\install.wim /index:9 /mountdir:h:\mount /readonly
dism /image:h:\mount /Get-Packages /Format:Table > "h:\package_info\Ultimate (x64) - Table1.txt"
dism /image:h:\mount /Get-Packages /Format:List > "h:\package_info\Ultimate (x64) - List1.txt"
dism /unmount-wim /mountdir:h:\mount /discard
dism /cleanup-wim

И похожие. Пробовал это сделать, но вывод комманды должен быть в файл, а оно выводит мне в окно команд.

Добрый вечер, MAKSOID !

У нас есть свой раздел программирования, поэтому отвечаю здесь.

У меня Ваш батник прекрасно работает.
И я практически ничего не менял...

Код:
@echo off
SetLocal
cd /d "%~dp0"
net session 2>NUL >NUL|| (echo Необходимы права Администратора & pause >NUL & exit /B)
set image=h:\install_wims\install.wim
set MountDir=h:\mount
set LogFileTable=h:\package_info\Ultimate (x64) - Table1.txt
set LogFileList=h:\package_info\Ultimate (x64) - List1.txt

md "%MountDir%" 2>NUL
dism /mount-wim /wimfile:"%image%" /index:1 /mountdir:"%MountDir%" /readonly
dism /image:"%MountDir%" /Get-Packages /Format:Table > "%LogFileTable%"
dism /image:"%MountDir%" /Get-Packages /Format:List > "%LogFileList%"
dism /unmount-wim /mountdir:"%MountDir%" /discard
dism /cleanup-wim
pause

Такие вопросы:
  • запускаете от имени Администратора ?
  • путь везде правильно указан?
  • Папка h:\package_info существует на диске?
  • Номер индекса образа верный? (у меня для Windows 7 - ru_windows_7_ultimate_with_sp1_x64 он равен 1).

Вот результаты, которые я получил:

Wim_cmd.png
 

Вложения

  • WIM.zip
    1.4 KB · Просмотры: 4
Последнее редактирование:
Добрый вечер, MAKSOID !

У нас есть свой раздел программирования, поэтому отвечаю здесь.

У меня Ваш батник прекрасно работает.
И я практически ничего не менял...

Код:
@echo off
SetLocal
cd /d "%~dp0"
net session 2>NUL >NUL|| (echo Необходимы права Администратора & pause >NUL & exit /B)
set image=h:\install_wims\install.wim
set MountDir=h:\mount
set LogFileTable=h:\package_info\Ultimate (x64) - Table1.txt
set LogFileList=h:\package_info\Ultimate (x64) - List1.txt

md "%MountDir%" 2>NUL
dism /mount-wim /wimfile:"%image%" /index:1 /mountdir:"%MountDir%" /readonly
dism /image:"%MountDir%" /Get-Packages /Format:Table > "%LogFileTable%"
dism /image:"%MountDir%" /Get-Packages /Format:List > "%LogFileList%"
dism /unmount-wim /mountdir:"%MountDir%" /discard
dism /cleanup-wim
pause

Такие вопросы:
  • запускаете от имени Администратора ?
  • путь везде правильно указан?
  • Папка h:\package_info существует на диске?
  • Номер индекса образа верный? (у меня для Windows 7 - ru_windows_7_ultimate_with_sp1_x64 он равен 1).

Вот результаты, которые я получил:

Посмотреть вложение 18244
Спасибо за ответ. Я использовал этот батник :
DISM.bat
-----
Код:
@echo off
start /wait dism /mount-wim /wimfile:h:\install_wims\install.wim /index:9 /mountdir:h:\mount /readonly
start /wait dism /image:h:\mount /Get-Packages /Format:Table > "h:\package_info\Ultimate (x64) - Table1.txt"
start /wait dism /image:h:\mount /Get-Packages /Format:List > "h:\package_info\Ultimate (x64) - List1.txt"
start /wait dism /unmount-wim /mountdir:h:\mount /discard
start /wait dism /cleanup-wim
-----
И он работает, точнее работает всё кроме вывода в файлы .txt. Все папки созданы и были использованы. Индексы проверил. Команды работают. Я их уже выполнял вручную, всё работает, но хотел бы автоматизировать весь процесс с помощью пакетных файлов. Но команды выполняются из батника где-то в 3-4 раза медленнее, чем если бы я запустил эти команды по очереди в Командной строке средств развертывания (использую Win7 OPK). Строку запускал от имени администратора, конечно-же. Не понимаю в чем я ошибся.

Вопрос 1 : вы написали что у вас всё работает, и вывод в файлы тоже? Просто у меня выводится прямо в окно командной строки.
Вопрос 2 : что такое %~dp0?
Вопрос 3 : в синем окошке командной строки на изображении не видно процесса сохранения в файлы .txt . Это другой батник?
Вопрос 4 : может проблема в том что я использовал .bat вместо .cmd ? Слышал что если сохранить в .cmd, процесс выполнения будет быстрее
 
Последнее редактирование модератором:
Но команды выполняются из батника где-то в 3-4 раза медленнее, чем если бы я запустил эти команды по очереди в Командной строке средств развертывания (использую Win7 OPK).
С OPK знакомства не имел.
Единственное, что могу предположить - она хитрым образом виртуализирует часть операций. Какая часть этих операций выполняется дольше - монтирование?

Что нужно установить, чтобы получить доступ к этой командной строке и самому попробовать? (на M$ много букв - мне долго читать)

Зачем используете Start /WAIT - эти команды и так выполняются по очереди синхронно.
У Вас не выводится в файл потому что знак > поддерживает только среда CMD, а Вы его передаете в команду Start. Она не понимает такого знака.
Так будет работать:

Код:
start /b /wait dism /image:h:\mount /Get-Packages /Format:Table > "h:\package_info\Ultimate (x64) - Table1.txt"

Но повторюсь, что это лишнее. Пишите просто dism

Вопрос 1 : вы написали что у вас всё работает, и вывод в файлы тоже? Просто у меня выводится прямо в окно командной строки.
Выполнение команды убрал с помощью @echo off, а сам вывод уходит в файл, поэтому в консоли ничего нет.
Вопрос 2 : что такое %~dp0?
Переход в каталог, где находится батник. Если Вы запускаете от Админа, то попадаете в папку %SystemRoot%\System32
Вопрос 3 : в синем окошке командной строки на изображении не видно процесса сохранения в файлы .txt . Это другой батник?
Ответил выше.
Вопрос 4 : может проблема в том что я использовал .bat вместо .cmd ? Слышал что если сохранить в .cmd, процесс выполнения будет быстрее
Не должен. Исполняемое ядро одно и тоже.
 
С OPK знакомства не имел.
Как по мне, тот же Windows 7 AIK, только с компонентом SRT для Windows PE 3.0/3.1.

Что нужно установить, чтобы получить доступ к этой командной строке и самому попробовать? (на M$ много букв - мне долго читать)
WAIK - http://www.microsoft.com/ru-ru/download/details.aspx?id=5753 . Чтобы скачать WOPK, надо проделать лишние телодвижения.

Зачем используете Start /WAIT - эти команды и так выполняются по очереди синхронно.
Использую start /wait чтобы команда 2 выполнялась только по завершении команды 1 и так далее.

У Вас не выводится в файл потому что знак > поддерживает только среда CMD, а Вы его передаете в команду Start. Она не понимает такого знака.
Так будет работать:
Код (Text):
start /b /wait dism /image:h:\mount /Get-Packages /Format:Table > "h:\package_info\Ultimate (x64) - Table1.txt"
Но повторюсь, что это лишнее. Пишите просто dism
Спасибо! Теперь у меня всё работает. Но вторая проблема - выполнение команд очень замедлено, по сравнению с прямым вводом. Хотя может это мне кажется.

Вопрос 4 : может проблема в том что я использовал .bat вместо .cmd ? Слышал что если сохранить в .cmd, процесс выполнения будет быстрее
Не должен. Исполняемое ядро одно и тоже.
Ну это так. Насколько я помню, если пакетный файл .bat, то система читает файл снова и снова после каждой выполненой команды. Если .cmd, то система читает файл только один раз. Как-то так. Хотя незнаю как это может влиять на скорость работы пакетного файла.
 
а это тоже решили?
Думаю это просто мне показалось. И вообще, я думаю быстрее выполнение пакетного файла с небольшой задержкой, нежели ввод этих комманд вручную. И это мне повезло что 9 образов в install.wim . На работе (я сисадмин) стоят 14 блоков по 30 компьютеров. Для каждого блока своя сборка (чтобы долго не парится с установкой программ и утилит). В любом случае спасибо.
 
Назад
Сверху Снизу