|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista » Общее - BAT/CMD скрипт-меню для dism.exe |
|
Общее - BAT/CMD скрипт-меню для dism.exe
|
Пользователь Сообщения: 86 |
Профиль | Сайт | Отправить PM | Цитировать
На днях обновлял свои образы c windows 7, и для облегчения работы накидал небольшой скрипт-меню для утилиты dism.
Скрипт выполнен в виде меню. Реализованы базовые возможности dism для работы с offline образами. Основные возможности:
В скрипте используются переменные, которые можно изменить вручную в файле (файл сохранен в кодировке 866 OEM) , или при запуске скрипта, в меню. Есть пункт меню Сценарии, но его я не прорабатывал. Идея сценариев - автоматизировать весь процесс. Возможны ошибки и неточности. Скрипт можно доделать, переделать под себя. 25.12.2017 Обновил скрипт. Условно v1.1. Исправлены ошибки. Переработано меню. Работа продолжается. |
|
------- Отправлено: 11:49, 18-12-2017 |
Ветеран Сообщения: 1861
|
Профиль | Отправить PM | Цитировать Небольшая подсказка, лучше вместо
set choice= Set /p choice="Ваш выбор: " if not defined choice goto menu0 if "%choice%"=="1" (goto menu1) if "%choice%"=="2" (goto menu2) if "%choice%"=="3" (goto menu3) if "%choice%"=="4" (goto menu4) if "%choice%"=="9" (goto menu9) if "%choice%"=="0" (goto ExitAll) Echo. Echo Не правильно сделан выбор задания Echo. Echo. goto menu0 pause >nul и перед :ExitAll добавить строку :menu0. Тогда невозможно будет нажать клавишу кроме заданных , просто не сработает, конструкция проще и меньше строчек кода. И так заменить все остальные Set /p. |
Последний раз редактировалось Ж.Д.А.Л.К.Е.Р., 18-12-2017 в 12:46. Отправлено: 12:41, 18-12-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 86
|
Профиль | Сайт | Отправить PM | Цитировать Ж.Д.А.Л.К.Е.Р., предложение по оптимизации хорошее, но принцип работы у 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) |
------- Отправлено: 10:01, 22-12-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата sosed213:
|
|
Отправлено: 12:39, 22-12-2017 | #4 |
Пользователь Сообщения: 86
|
Профиль | Сайт | Отправить PM | Цитировать Обновил скрипт. Описание в шапке.
|
|
------- Отправлено: 10:55, 25-12-2017 | #5 |
Пользователь Сообщения: 107
|
Профиль | Отправить PM | Цитировать Посмотрел скрипт. Есть вопросы-замечания:
1) Командами SET вначале жестко задаются пути источника, папки монтирования и т.д. Почему бы не использовать относительные пути - относительно места запуска скрипта? 2) К команде dism не нужно приписывать расширение .exe. Запускать лучше с ключом /LogLevel:1, чтобы не перегружать log-файл излишней информацией, регистрируя лишь сообщения об ошибках. 3) В скрипте работа ведётся только с автономным файлом образа (обычно install.wim). Но установленная ОС это тоже образ, только "развёрнутый" и система DISM умеет выполнять обслуживание онлайн. В данном скрипте это не реализовано. 4) В меню скрипта нет пунктов позволяющих посмотреть (получить) сведения о содержимом образа. Я имею ввиду списки уже интегрированных в образ драйверов и обновлений, состояния (вкл/выкл) компонентов ОС. 5) Что если попытаться интегрировать обновление которое уже имеется в образе? Проверка наличия в скрипте не выполняется. Система DISM потом "поймёт" (когда всё распакует и приготовится интегрировать), но время буде потеряно напрасно. Имею свою коллекцию скриптов для работы с автономными образами и обслуживания онлайн. Частично "раскрываю карты" и выкладываю их на Habrahabr (ссылка на список моих постов). Может быть найдёшь там для себя полезную информацию. |
Отправлено: 15:03, 29-01-2018 | #6 |
Пользователь Сообщения: 86
|
Профиль | Сайт | Отправить PM | Цитировать osmaster, с чем то соглашусь, но решений удовлетворяющих каждого не бывает.
1) Да, в некоторых случаях будет удобно работать с относительными путями, подумаю над этим. 2) Стараюсь всегда добавлять соответствующее расширение, как в данном случае ".exe", чтобы не было не понятных глюков. В некоторых системах, если не указать .exe, скрипт как бы циклически перезапускается. /LogLevel:1 да, будет полезен. 3 и 4) Скрипт делал под конкретную задачу, но его можно масштабировать до полноценного DISM-Menu. 5) Дополнительные проверки будут полезны. Спасибо за ссылку на habrahabr, есть интересные скрипты. |
------- Отправлено: 14:16, 02-02-2018 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Безопасность - Создание exe из cmd или bat с распаковкой в озу | Abudabi | Программное обеспечение Windows | 4 | 06-05-2016 21:21 | |
CMD/BAT - [решено] Запуск .exe файла с помощью CMD/BAT | | meGangstaWorld | Скриптовые языки администрирования Windows | 1 | 23-09-2014 18:37 | |
2007 - [решено] Настройка почты через bat (cmd или скрипт) | zai | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 25-11-2011 17:32 | |
CMD/BAT - [решено] Скрипт для cmd запуск и выключение explorer.exe в определенное время... | ar3127 | Скриптовые языки администрирования Windows | 7 | 18-06-2011 22:03 | |
CMD/BAT - [решено] Работа с 7z.exe в bat\cmd файле | Medic84 | Скриптовые языки администрирования Windows | 5 | 13-10-2009 15:35 |
|