Автоматическое выключение компьютера. Пишем bat-файл

Сегодня: 28.03.2024, Четверг

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

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

Данная статья будет посвящена такому моменту, как автоматическое выключение компьютера через заданный промежуток времени. Все манипуляции мы будем производить исключительно средствами самой системы Windows, без использование сторонних программ. Кроме того, не станем ограничиваться выполнением голых команд, а добавим всему процессу немного юзабилити.

Как выполнить shutdown для выключения и перезагрузки компьютера

Не будем срываться с места в карьер, начнём с самого начала. А начало - это основная команда для выключения компьютера, которую мы будем использовать. В ОС Windows для завершения работы достаточно передать системе команду shutdown с нужными параметрами.

В принципе, команду shutdown можно выполнять разными способами:

  • выполнить shutdown из командной строки Windows
    shutdown в командной строке Windows
  • вызвать команду shutdown из утилиты Выполнить в системе Windows
    shutdown в окне Выпонить Windows
  • отправить команду shutdown непосредственно из меню Пуск
    shutdown в меню Пуск Windows

Все три способа схожи, поддерживают одни и те же параметры, поэтому мы не будет заострять на этом внимание и весь процесс будем выполнять в консоли, то есть в командной строке системы Windows.

Как же это работает? Чтобы компьютер выключился автоматически, то есть без необходимости лезть в меню "Пуск" и нажимать там кнопку "Завершение работы", нам нужно вызвать следующую команду:

shutdown -s

Через 30 секунд после выполнения произойдёт завершение работы системы. Кроме этого той же командой, но с иным параметром можно не выключить компьютер, а перезагрузить его. Вот как это будет выглядеть:

shutdown -r

Опять же отметим, что остальные параметры для команды выключения и перезагрузки схожи, поэтому мы не будем повторять каждый набор дважды, а рассмотрим весь процесс автоматического выключения компьютера на примере команды shutdown -s, держа в уме, что всё то же самое применимо и к команде shutdown -r

А теперь приступим к усовершенствованию команды и добавлению к ней дополнительных параметров.

Параметры команды shutdown

Материал, описанный в статье, применим к большинству используемых на сегодняшний день версий операционной системы от компании Microsoft. Команды и способы их выполнения позволяют автоматически выключить компьютер на Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista и всё ещё сохраняющей своего верного пользователя Windows XP.

Теперь рассмотрим основные параметры команды shutdown, которыми мы будем пользоваться:

  • -s основной параметр, который позволяет автоматически выключить компьютер;
  • -r основной параметр, который позволяет автоматически перезагрузить компьютер;
  • -a основной параметр, который позволяет отменить запланированное действие по выключению или перезагрузке компьютера;
  • -t позволяет задать время задержки в секундах до выключения или перезагрузки компьютера. Возможно присвоение значения в диапазоне от 0 до 315360000 (10 лет). По умолчанию присваивается значение 30;
  • -f принудительное закрытие запущенных приложений без предупреждения пользователей. Не самый главный параметр, но бывает полезен, так как помогает избежать отмены выключения или перезагрузки компьютера из-за зависших программ.

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

shutdown /?

Список параметров команды shutdown в консоли Windows

Автоматическое выключение компьютера через определённое время

Итак, переходим к практическому применению информации, которую мы собрали в первых двух главах.

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

shutdown -s -f -t 1800

Используемые параметры нам уже знакомы. А значение 1800 задаёт значение времени в секундах, через которое будет произведено завершение работы. То есть, 1800 секунд = 1800 секунд / 60 секунд в минуте = 30 минут. С этим проблем возникнуть не должно. После выполнения команды мы получим системное уведомление, о том, что запланировано завершение работы

Работа Windows будет завершена через 30 минут

Кроме того, за 10 минут до момента завершения работы вне зависимости от запланированной причины (выключение или перезагрузка) мы получим дополнительное предупреждение от системы Windows

Работа Windows будет завершена через 10 минут

Но как быть, если, допустим, спустя минут 15 мы понимаем, что фильм досмотреть не успеем и нужно отменить автоматическое выключение? Чтобы отказаться от запланированного завершения работы Windows, необходимо выполнить следующую команду:

shutdown -a

Сразу после выполнения команды высветится оповещение о том, что автоматическое выключение компьютера отменено

Выход из системы отменен. Запланированное завершение работы отменено

Это, собственно, всё, что нужно знать для автоматического выключения компьютера через заданное время. Но каждый раз вводить команду в консоль не очень удобно, поэтому ниже мы разберём, как написать бат-файл для автоматического выключения компьютера или его перезагрузки.

Батник для автоматического выключения компьютера

В статье Пакетные файлы (bat, батники) Windows мы подробно рассматривали основные правила создания бат-файлов и их синтаксис. Чтобы не повторяться лишний раз, в данной публикации будем описывать только те команды и параметры, которые будем применять для создания файлов, позволяющих запланировать автоматическое выключение компьютера.

Возьмём команду, приведённую в главе выше, и сделаем из неё простенький бат-файл для выключения компьютера через 10 минут. Его содержимое будет следующим:

echo off
chcp 1251
echo Компьютер будет выключен через 10 минут
shutdown -s -f -t 600
pause

где:

  • echo off - скрывает вывод системных сообщений при выполнении процедуры;
  • chcp 1251 - задаёт кодировку для корректного отображения кириллицы;
  • echo - выводит сообщение в консоли о выключении;
  • shutdown -s -f -t 600 - задаёт время выключения - 600 секунд, то есть 10 минут;
  • pause - останавливает выполнение батника до нажатия любой кнопки клавиатуры.

Это очень легко, добавим функционала нашему bat-файлу. Для этого воспользуемся командой set, которая позволяет задавать пользовательские переменные. То есть, при запуске батника консоль будет спрашивать нас примерно следующее: "Через сколько секунд выключить компьютер?", а мы каждый раз можем вводить нужное значение и жать клавишу Enter. Вот как будет выглядеть код нашего батника:

echo off
chcp 1251
set /p sec_off="Выключить компьютер через: "
echo Компьютер будет выключен через %sec_off% секунд
shutdown -s -f -t %sec_off%
pause

где:

  • set /p sec_off= - задаём значение переменной sec_off;
  • echo - выводим в уведомление заданное значение секунд;
  • shutdown -s -f -t %sec_off% - выключаем компьютер спустя заданное в начале количество секунд.

Уже лучше, но можно усовершенствовать. Задавать время выключения в секундах не очень удобно. Мы будем использовать минуты (можно по аналогии настроить и часы). Однако, консоль Windows не поймёт нашего значения в минутах, поэтому для неё мы будем осуществлять перевод в секунды.
Вот как это будет выглядеть:

echo off
chcp 1251
set /p min_off="Выключить компьютер через (минут): "
set /A sec_off="%min_off% * 60"
echo Компьютер будет выключен через %min_off% минут
shutdown -s -f -t %sec_off%
pause

где:

  • set /p min_off= задаём значение переменной min_off;
  • set /A sec_off= задаём значение переменной sec_off, умножая количество минут на 60, чтобы получить для консоли секунды;
  • echo - выводим в уведомлениях заданные минуты;
  • shutdown -s -f -t %sec_off% подставляем полученное значение в секундах.

В принципе, на этом можно остановиться. Готовые батники выключения, перезагрузки и отмены завершения работы с приведённым кодом можно скачать из прикреплённого к статье архива: auto-shutdown-reboot-bat.

Но можно ещё немного улучшить бат-файлы и сделать из трёх один, преобразовав его в крошечную программу. Этим и займёмся ниже.

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

На данный момент мы имеем три батника, каждый из которых выполняет свою функцию: выключение компьютера, перезагрузку и отмену запланированных действий.
Для начала напишем основную часть нового единого bat-файла. Суть будет заключаться в том, чтобы спрашивать у пользователя, какое из трёх действий требуется выполнить, а потом уже переходить к той части, которая отвечает за нужную функцию.

Выбор функции зададим следующей строчкой (её, как и весь файл, можно отредактировать на своё усмотрение, как будет удобнее):

set /p answer="выключить - 1, перезагрузить - 2, отменить - 0: "

Здесь мы задаём новую переменную answer, значение которой вводится при каждом запуске файла и подтверждается нажатием клавиши Enter.
Переход к нужной части бат-кода осуществляем командой goto, в данном случае строчка будет иметь следующий вид:

goto %answer%

Начало каждой независимой части ознаменуем, соответственно, как :1:2 и :0
Для грамотного выполнения сделаем завершение каждой части кода не командой pause, а командой exit, добавив перед закрытием окна двухсекундную задержку:

TIMEOUT /T 2
exit

И в завершении добавим раскрашивание текста разным цветом, в зависимости от выполняемой команды:

color C

На выходе мы получим следующий код:

echo off
chcp 1251
set /p answer="выключить - 1, перезагрузить - 2, отменить - 0: "
goto %answer%

:1
set /p min_off="Выключить компьютер через (минут): "
set /A sec_off="%min_off% * 60"
color C
echo Компьютер будет выключен через %min_off% минут
shutdown -s -f -t %sec_off%
TIMEOUT /T 2
exit

:2
set /p min_re="Перезагрузить компьютер через (минут): "
set /A sec_re="%min_re% * 60"
color E
echo Компьютер будет перезагружен через %min_re% минут
shutdown -r -f -t %sec_re%
TIMEOUT /T 2
exit

:0
color A
echo Запланированное завершение работы Windows отменено
shutdown -a
TIMEOUT /T 2
exit

Каждая команда уже описана выше. Вот, как это работает:

  1. Мы запускаем батник.
  2. В ответа на вопрос о выборе функции вводим 1, 2 или 0. , подтверждаем ввод клавишей Enter.
  3. Консоль перейдёт к соответствующей части кода и, если это выключение или перезагрузка, спросит, через сколько минут произвести требуемое действие.
  4. Потом введённое значение преобразуется в секунды и добавляется в команду, параметры которой и определяют запланированное действие.

Программа для автоматического выключения компьютера

Скачать готовый bat-файл для автоматического выключения компьютера можно из прикреплённого архива: auto-shutdown-bat.

Для удобства можно упаковать получившийся батник в SFX-архив и добавить к нему иконку. В итоге получится простая портативная программа для автоматического выключения и перезагрузки компьютера через заданный интервал времени: auto-shutdown-exe.



Добавить комментарий

Автоматическое выключение компьютера. Пишем bat-файл: 14 комментариев


  1. Чарли

    Я это к чему… я хочу убить компьютер, возможно же если на верху показынные некоторые команды изменить или убрать (оставить только дедлайн) и ставить свои команды, это же сработает??

    1. Гачимастеи

      Ага, просто вставь батник на автозапуск и поставь минимальное время

  2. Игорь

    Если батник на перезагрузку или выключение добавить в автозагрузку, как то это выключить можно будет?) или через безопасный режим? Хочу в офисе подшутить над коллегами)

    1. Apres Автор записи

      Всё верно, Игорь.
      Можно через безопасный режим, можно с любого live cd загрузиться

  3. Артём

    Спасибо большое за удобную и подробную статью)

  4. Дмитрий

    На Win10 работает без проблем. На Win 7 кракозябли. Так и не понял как поменять кодировку.

  5. ХАН

    Консоль работает в кодировке DOS (codepage 866).
    Блокнот Windows создает пакетный файл в кодировке WIN (codepage 1251).
    Поэтому, когда Вы запускаете файл, консоль отображает его в своей (DOS) кодировке.

    Для отображения русского текста в консоли, нужно сохранить файл в кодировке OEM-866
    Notepad++
    Чтобы создать новый файл в кодировке DOS:
    Меню «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM-866»
    «Файл» -> «Сохранить как…» -> пишем имя файла и расширение bat или cmd -> Сохранить.

    Чтобы правильно сконвертировать уже имеющийся в редакторе код с кириллицей:
    Войти в редактор.
    1) Ctrl+A, скопировать код.
    2) Удалить код.
    3) Меню «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM-866»
    4) Вставить код.
    5) Сохранить, запустить.