Войти

Показать полную графическую версию : Интеграция обновлений в дистрибутив с заданной последовательностью


timon45
21-09-2016, 14:37
Появилась необходимость устанавливать обновления через пакетный фай (cmd) с определенной последовательностью через DISM (Windows 7). Такая необходимость возникла т.к. некоторые KB-шки при установке бьют ошибки и это уже изрядно поднадоело.
пользуюсь командой
dism /IMAGE:"%~dp0Mount" /ADD-PACKAGE /PACKAGEPATH:"%~dp0Updates\x64" /LogPath:"%~dp0Logs\Updates.log" /LogLevel:2
писать данную команду для каждого обновления не вариант. (очень долгий процесс интеграции, и не красиво все это)
можно указывать через пробел каждую обновку
dism /IMAGE:"%~dp0Mount" /PACKAGEPATH:"%~dp0Updates\x64\WUClient-SelfUpdate-ActiveX-x64.cab" /PACKAGEPATH:"%~dp0Updates\x64\Windows6.1-KB917607-x64.cab" ...
но обновлений много и все за раз не поставишь, может указать как то "рекрсивно" (или как там оно называется) т.е. создать отдельный файл со списком обновлений который будет загружаться в /ADD-PACKAGE /PACKAGEPATH:"%~dp0Updates\x64\*** и так по порядку, как это реализовать я не знаю.
Или может кто предложит иной вариант решения проблемы.

Ж.Д.А.Л.К.Е.Р.
21-09-2016, 16:46
For /F "Delims=" %%I In (KB.lst) Do (dism /IMAGE:"%~dp0Mount" /PACKAGEPATH:"%~dp0Updates\x64\%%I")

Содержимое KB.lst:
WUClient-SelfUpdate-ActiveX-x64.cab
Windows6.1-KB917607-x64.cab
...

timon45
21-09-2016, 21:02
Ж.Д.А.Л.К.Е.Р., это конечно да, я так тоже думал, но мне не нравится что при данном способе при обработке каждой обновки каждый раз запускается DISM на это много времени затрачивается если учесть что обновок уже ~220...240. Хотелось бы чтобы в DISM обрабатывал их за один запуск:
dism /IMAGE:"%~dp0Mount" /PACKAGEPATH:"%~dp0Updates\x64\WUClient-SelfUpdate-ActiveX-x64.cab" /PACKAGEPATH:"%~dp0Updates\x64\Windows6.1-KB917607-x64.cab" ... »
но пакетный файл такую длинную строку не обработает.

П.С. наверное я не в том разделе спрашиваю, может через VBS или powershell это только можно реализовать, и вызывать через мой пакетный файл, меня бы это тоже устраивало.

Ж.Д.А.Л.К.Е.Р.
21-09-2016, 21:14
Укажи путь к каталогу с обновлениями, а не к каждому из них. Переименуй (добавь цифры или буквы) обновления чтоб они устанавливались в нужном тебе порядке.

Пример, в каталоге Files\NVMe пара cab-ов для поддержки NVMe.
Dism /Image:Mount /Add-Package /PackagePath:Files\NVMe

timon45
21-09-2016, 21:50
Ж.Д.А.Л.К.Е.Р., не вариант, так тоже думал, и до этого была подобная схема (с года 2011), но это не очень удобно при обновлении своей сборки переименовывать каждый файл или отслеживать изменения, я как и многие доверяю этому списку (http://forum.ru-board.com/topic.cgi?forum=62&topic=24100&start=6&limit=1&m=1#1) с небольшими правками.скачивать их удобно, и список составить тоже.

Ж.Д.А.Л.К.Е.Р.
23-09-2016, 15:11
с определенной последовательностью »
В чем она заключается ?

не очень удобно при обновлении своей сборки переименовывать каждый файл или отслеживать изменения »
Так все равно это приходится делать (обновления добавляются/заменяются/удаляются) чтоб получить список с нужной тебе последовательностью.




© OSzone.net 2001-2012