BAT/CMD скрипт-меню для dism.exe
Вложений: 3
На днях обновлял свои образы c windows 7, и для облегчения работы накидал небольшой скрипт-меню для утилиты dism.
Скрипт выполнен в виде меню. Реализованы базовые возможности dism для работы с offline образами. Основные возможности:
В скрипте используются переменные, которые можно изменить вручную в файле (файл сохранен в кодировке 866 OEM) , или при запуске скрипта, в меню. Есть пункт меню Сценарии, но его я не прорабатывал. Идея сценариев - автоматизировать весь процесс. Возможны ошибки и неточности. Скрипт можно доделать, переделать под себя. 25.12.2017 Обновил скрипт. Условно v1.1. Исправлены ошибки. Переработано меню. Работа продолжается. |
Небольшая подсказка, лучше вместо
Код:
set choice= Код:
Choice /c 123490 /n /m "Ваш выбор: " |
Ж.Д.А.Л.К.Е.Р., предложение по оптимизации хорошее, но принцип работы у Choice узкоспециализированный.
Я делал меню чтобы понятнее(приятнее) было работать с меню. Т.е. например 0 - это выход. Но Choice вернет вместо нуля его индекс, т.е. 6. И логика построения меню станет запутанной. Choice /c 123490 /n /m "Ваш выбор: " Придется применять мою конструкцию с условием, и небольшой переделкой: if "%ErrorLevel%"=="1" (goto menu1) if "%ErrorLevel%"=="2" (goto menu2) if "%ErrorLevel%"=="3" (goto menu3) if "%ErrorLevel%"=="4" (goto menu4) if "%ErrorLevel%"=="4" (goto menu9) if "%ErrorLevel%"=="5" (goto ExitAll) |
Цитата:
|
Обновил скрипт. Описание в шапке.
|
Посмотрел скрипт. Есть вопросы-замечания:
1) Командами SET вначале жестко задаются пути источника, папки монтирования и т.д. Почему бы не использовать относительные пути - относительно места запуска скрипта? 2) К команде dism не нужно приписывать расширение .exe. Запускать лучше с ключом /LogLevel:1, чтобы не перегружать log-файл излишней информацией, регистрируя лишь сообщения об ошибках. 3) В скрипте работа ведётся только с автономным файлом образа (обычно install.wim). Но установленная ОС это тоже образ, только "развёрнутый" и система DISM умеет выполнять обслуживание онлайн. В данном скрипте это не реализовано. 4) В меню скрипта нет пунктов позволяющих посмотреть (получить) сведения о содержимом образа. Я имею ввиду списки уже интегрированных в образ драйверов и обновлений, состояния (вкл/выкл) компонентов ОС. 5) Что если попытаться интегрировать обновление которое уже имеется в образе? Проверка наличия в скрипте не выполняется. Система DISM потом "поймёт" (когда всё распакует и приготовится интегрировать), но время буде потеряно напрасно. Имею свою коллекцию скриптов для работы с автономными образами и обслуживания онлайн. Частично "раскрываю карты" и выкладываю их на Habrahabr (ссылка на список моих постов). Может быть найдёшь там для себя полезную информацию. |
osmaster, с чем то соглашусь, но решений удовлетворяющих каждого не бывает.
1) Да, в некоторых случаях будет удобно работать с относительными путями, подумаю над этим. 2) Стараюсь всегда добавлять соответствующее расширение, как в данном случае ".exe", чтобы не было не понятных глюков. В некоторых системах, если не указать .exe, скрипт как бы циклически перезапускается. /LogLevel:1 да, будет полезен. 3 и 4) Скрипт делал под конкретную задачу, но его можно масштабировать до полноценного DISM-Menu. 5) Дополнительные проверки будут полезны. Спасибо за ссылку на habrahabr, есть интересные скрипты. |
Время: 06:46. |
Время: 06:46.
© OSzone.net 2001-