Имя пользователя:
Пароль:
 | Правила  

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

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

Новый участник


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

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


Ребята, помогите пожалуйста, у нас на форуме никто в зуб ногой не умеет создавать и править такие скрипты.
В общем предисловие. Есть пакет дров проверенных и собранных с любовью) Специфика установки подразумевает несколько перезагрузок, и есть скрипт взятый от китайцев, который устанавливает все одной установкой. Разложили в 4 папки, получилось 4 скрипта.
Нужно чтобы был один главный скрипт, который запускал бы эти 4 скрипта с перезагрузками. Я не программист, примерно так себе это представляю.
скрипты уже есть, их просто нужно подправить.
ссылка на драйверпак 4pda файл Minimal Driver Pack Auto Install.7z

буду очень признателен если кто нибудь откликнется

Отправлено: 20:43, 28-12-2017

 

Ветеран


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

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


Цитата Hegehog1989:
Разложили в 4 папки »
зачем, а если надо то куда, это 4 пользователя в локалке?

Отправлено: 00:54, 29-12-2017 | #2



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

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


Новый участник


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

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


при чем тут локалка, тупо разложили дрова в 4 папки, ну не ставятся они одновременно, нужны перезагрузки, нужен скрипт который делал новый скрипт в автозагрузке и потом грузил вторую, третью, четвертую папку, каждый раз после перезагрузки

ну или подхватила существующий который лежит в каждой папке с дровами, выполнила, и после перезагрузки переключилась на следующий

Отправлено: 01:25, 29-12-2017 | #3

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


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

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


Hegehog1989, первый скрипт прописывает в раздел RunOnce реестра вызов второго (с полным путём, разумеется), исполняется и перезагружает компьютер.

После перезагрузки начинает исполняться второй скрипт, который прописывает в раздел RunOnce реестра вызов третьего (с полным путём, разумеется), исполняется и перезагружает компьютер.

После перезагрузки начинает исполняться третий скрипт, который прописывает в раздел RunOnce реестра вызов четвёртого (с полным путём, разумеется), исполняется и перезагружает компьютер.

И т.д. Последний скрипт в RunOnce ничего не прописывает.

Всё это может быть выполнено одним скриптом: как вариант, с метками перехода. При этом каждый блок, находящийся между метками, сначала в прописывает в RunOnce вызов этого же скрипта с параметром, равным метке следующего блока, типа:

Код: Выделить весь код
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v <Cледующая_метка>/t REG_SZ /d """"%0""" <Cледующая_метка>"
и далее исполняет тело текущего блока скрипта с завершающей командой перехода на последнюю в скрипте метку :Reboot, содержащую команду перезагрузки, например
Код: Выделить весь код
:Reboot
REM Перезагрузка
SHUTDOWN.EXE -r -t 20
которая стоит сразу после последнего блока.
В последнем блоке скрипта в RunOnce ничего не пишется.

Ну а в самом начале всего скрипта ставится (после команды setlocal) команда перехода на метку, например
Код: Выделить весь код
IF NOT "%1"=="" goto %1
Поскольку при первичном запуске скрипта он вызывается с пустым параметром, то первый вход метки не находит и вызывает на исполнение первый блок, стоящий сразу после этой условной команды перехода.

-------
Mikhail Zhilin


Последний раз редактировалось mwz, 29-12-2017 в 02:19.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:53, 29-12-2017 | #4


Ветеран


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

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


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

Update:
Цитата mwz:
Всё это может быть выполнено одним скриптом: как вариант, с метками перехода. При этом каждый блок, находящийся между метками, сначала в прописывает в RunOnce вызов этого же скрипта с параметром, равным метке следующего блока, типа: »
Когда я уже научусь сначала дочитывать сообщение до конца, и только затем рваться в бой отвечать . Ну, пусть остаётся памятником очередной моей нетерпеливости.

Отправлено: 02:23, 29-12-2017 | #5


Новый участник


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

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


Спасибо, будем пробовать

Отправлено: 08:30, 29-12-2017 | #6


Аватара для Сrack

Ветеран


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

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


Цитата Hegehog1989:
Я не программист »
Для не программистов есть готовые программы, где все просто делается. Последовательный запуск программ, в том чисте и батников, с поддержкой перезагрузки с последующим продолжением есть в MInstAll.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:49, 29-12-2017 | #7


Новый участник


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

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


Цитата mwz:
Всё это может быть выполнено одним скриптом »
Спасибо за помощь, будем пробовать :-)
Может ещё подскажите один момент.
Хочу в этот скрипт внести защиту "от дурака".
Чаще всего пользователи кидают папку куда хотят, из-за этого и возникает большинство проблем...
В скрипте использовал параметр пути "%~dp0", но смотрю в последней версии Win10 bild 1709 он перестал работать...

Если не получится с скриптом, то попробую ваш способ с MInstAll
Цитата Сrack:
Для не программистов есть готовые программы »
В любом случае спасибо за помощь :-)

Отправлено: 12:56, 29-12-2017 | #8

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


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

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


Цитата Porsche-928:
Чаще всего пользователи кидают папку куда хотят, из-за этого и возникает большинство проблем... »
Если обратите внимание, в строке "REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce ...." стоит параметр %0 (в правильном для данной команды обрамлении из массы кавычек ), который передаёт имя скрипта, из которого он вызван, с полным путём. Т.е. куда бы вы скрипт не кинули — после перезагрузки его вызов будет обращён на тот же диск и в ту же папку, где он лежит.

Ну а уж скрипт должен следить за правильностью путей к тем файлам, которые он запускает — и это надо смотреть уже конкретно "по месту". И если все эти файлы находятся во вложенных по отношению к скрипту папках — не забыть прописать в нём после setlocal свою рабочую папку, путь и имя которой при [непонятных] проблемах с "%~dp0" (я надеюсь, слэша после этой переменной не стоит? Должно быть "%~dp0Команда" или "%~dp0.\Команда", а не "%~dp0\Команда ) скрипт может вытащить сам из того самого %0 — что надо делать, как и вообще определять все переменные, до команды IF NOT "%1"=="" goto %1.

Все строки, что я привёл, взяты из моего личного скрипта обновлений WinXP, который начинался с нескольких независимых скриптов, вызывающих последующие по самому первому моему варианту — но с увеличение количества обновлений я задолбадся отслеживать связи и пришёл к варианту единого скрипта, который после выпуска нерасчётных обновлений WinXP этого года стал содержать 15 блоков, выполняемых последовательно с перезагрузками — и не приходится задумываться, куда класть копию этой папки с полным комплектом на старенькие машины с ХР при необходимости их обновить.

А задержка в 20 секунд в метке :Reboot введена в т.ч. для того чтобы успеть при необходимости прервать перезагрузку, введя и выполнив команду "shutdown -a"

Цитата Iska:
пусть остаётся памятником »
Я-то думал, что меня побьют за доморощенное решение — а тут такая квалифицированная поддержка!

-------
Mikhail Zhilin


Последний раз редактировалось mwz, 29-12-2017 в 14:32.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:00, 29-12-2017 | #9


Новый участник


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

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


Цитата mwz:
Я-то думал, что меня побьют за доморощенное решение — а тут такая квалифицированная поддержка! »
Спасибо.
Да в будущем можно конечно всё доработать, но для начало нужно чтоб хоть как-то заработало вообще :-)
Так что СПАСИБО!!!!

Отправлено: 16:24, 29-12-2017 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Создание загрузочного USB HDD с несколькими разделами clawhammer Хочу все знать 5 07-07-2015 20:47
PowerShell - [решено] Создание переменной (коллекции) с несколькими значениями rudimko Скриптовые языки администрирования Windows 5 16-01-2014 15:08
Создание мультизагрузки с несколькими различными svcpack.inf minutka15 Автоматическая установка Windows 2000/XP/2003 12 11-09-2010 18:43
Общее - Создание загрузочного USB HDD с несколькими осями advokcat Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 5 10-12-2009 09:12
Службы - Настройка службы автоматического обновления драйверов Simlion Microsoft Windows Vista 3 24-09-2007 17:21




 
Переход