Vadikan
10-12-2011, 20:04
Привет, коллеги!
Я соорудил скрипт, который выполняет перезагрузку Windows 7 три раза подряд с 60-секундной задержкой после первых двух перезагрузок. Его будут запускать конечные пользователи, предварительно проинструктированные "ничего не трогать" после запуска :)
В принципе, он работает, но у меня весьма базовые знания в этом вопросе, так что скрипт, наверное, можно оптимизировать.
reboot.cmd
@echo off
set TestDir=%~dp0
:: Проверяется наличие маркерных файлов, создаваемых при перезагрузках
IF NOT EXIST %TestDir%run1.tmp CALL :FirstRun
IF EXIST %TestDir%run2.tmp CALL :LastRun
:: Создание маркерного файла второй перезагрузки
echo>%TestDir%run2.tmp
EXIT
:FirstRun
:: Задание планировщика для выполнения второй перезагрузки и создания маркерного файла
:: Включает вызов этого командного файла для проверки маркеров
Schtasks.exe /Create /RL Highest /TN Reboot /SC ONLOGON /TR "cmd /c shutdown /r /t 60 /c \"This is the shutdown reason\" && call %TestDir%reboot.cmd"
:: Первая перезагрузка
shutdown /r /t 60 /c "This is the shutdown reason"
:: Создание маркерного файла первой перезагрузки
echo>%TestDir%run1.tmp
EXIT
:LastRun
:: Удаление задания из планировщика
Schtasks.exe /Delete /TN Reboot /F
:: Третья перезагрузка
shutdown /r /t 60 /c "This is the shutdown reason"
:: Удаление маркерных файлов
del /q %TestDir%*.tmp
EXIT
Буду признателен за любые отзывы, в т.ч. за "все ок" :)
Спасибо!
Я соорудил скрипт, который выполняет перезагрузку Windows 7 три раза подряд с 60-секундной задержкой после первых двух перезагрузок. Его будут запускать конечные пользователи, предварительно проинструктированные "ничего не трогать" после запуска :)
В принципе, он работает, но у меня весьма базовые знания в этом вопросе, так что скрипт, наверное, можно оптимизировать.
reboot.cmd
@echo off
set TestDir=%~dp0
:: Проверяется наличие маркерных файлов, создаваемых при перезагрузках
IF NOT EXIST %TestDir%run1.tmp CALL :FirstRun
IF EXIST %TestDir%run2.tmp CALL :LastRun
:: Создание маркерного файла второй перезагрузки
echo>%TestDir%run2.tmp
EXIT
:FirstRun
:: Задание планировщика для выполнения второй перезагрузки и создания маркерного файла
:: Включает вызов этого командного файла для проверки маркеров
Schtasks.exe /Create /RL Highest /TN Reboot /SC ONLOGON /TR "cmd /c shutdown /r /t 60 /c \"This is the shutdown reason\" && call %TestDir%reboot.cmd"
:: Первая перезагрузка
shutdown /r /t 60 /c "This is the shutdown reason"
:: Создание маркерного файла первой перезагрузки
echo>%TestDir%run1.tmp
EXIT
:LastRun
:: Удаление задания из планировщика
Schtasks.exe /Delete /TN Reboot /F
:: Третья перезагрузка
shutdown /r /t 60 /c "This is the shutdown reason"
:: Удаление маркерных файлов
del /q %TestDir%*.tmp
EXIT
Буду признателен за любые отзывы, в т.ч. за "все ок" :)
Спасибо!