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

Показать сообщение отдельно
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