Выключение или перезагрузка компьютера из bat файла
Статья описывает, как выключить или перезагрузить компьютер на Windows из командной строки: PowerShell, JScript/VBScript с WSH, nhss, shutdown. А также дополнительно, как сделать выключение или перезагрузку с задержкой.
Выключить или перезагрузить компьютер из PowerShell
Выключить компьютер можно командной Stop-Computer из консоли PowerShell:
Перезагрузить компьютер можно командой Restart-Computer из консоли PowerShell:
Как это выглядит в консоли PowerShell:
Поскольку PowerShell сейчас устанавливается на Windows по умолчанию, то использование PS команды не требует дополнительных установок.
Чтобы выполнить выключение или перезагрузку через PowerShell из bat файла или из командной строки, их надо вызывать через powershell.
Например, команда перезагрузки локального компьютера в bat файле или командной строке:
Аналогично, команда выключения локального компьютера в bat файле или командной строке:
Выключить или перезагрузить компьютер из JScript/VBScript через WSH
Способ основан на использовании метода Win32Shutdown класса Win32_OperatingSystem:
Выключить компьютер можно следующим скриптом на JScript:
Перезагрузить компьютер можно следующим скриптом на JScript:
Пример на VBScript, с forced restart (добавляется 4):
Поскольку WSH сейчас установлен по умолчанию на Windows, то использование JScript/VBScript не требует установки каких-либо программных компонентов.
Выключить или перезагрузить компьютер программой nhss
Программа nhss предназначена для управления питанием компьютера и позволяет выполнять такие команды, как выключение, перезагрузка, ждущий режим, спящий режим.
Выключить компьютер можно следующей командой:
Перезагрузить компьютер можно следующей командой:
Команды просты в использовании, но потребуется установить программу nhss.exe и прописать путь к ней.
Выключить или перезагрузить компьютер командой shutdown
Выключить компьютер можно следующей командой:
Перезагрузить компьютер можно следующей командой:
Важно! Команда shutdown делает «грубое» завершение Windows, которое на практике приводило к тому, что не сохранялись настройки, сделанных в Windows в текущем сеансе. Поэтому хотя и выключение/перезагрузка компьютера через shutdown действительно срабатывает, я бы не рекомендовал использование shutdown для обычного завершения, а только для экстренных случаев, когда требуется максимально быстро завершить Windows, например, в случае Low Battery на ИБП.
Как выключить компьютер по таймеру
Чтобы настроить выключение компьютера через определенное время, например, через 1 час, это можно сделать выполнением команды выключения с задержкой, см. Сделать задержку в командном файле:
Или через PowerShell с задержкой в 30 минут:
You May Also Like Сообщение пользователю в cmd Окно выбора файла в bat файле Проверить, запущена ли программа Выключение или перезагрузка компьютера из bat файла : 1 комментарийecho off chcp 1251 cls :x cls set /p any="Завершение работы- 1, перезагрузка- 2, отключение таймера- 0. Выберите действие: " cls set j=%any% if %j% == 3 ( msg * Такого значения не существует. echo Такого значения не существует. ping -n 2 127.0.0.1 > NUL cls goto x ) else ( cls ) if %j% == 4 ( msg * Такого значения не существует. echo Такого значения не существует. ping -n 2 127.0.0.1 > NUL cls goto x ) else ( cls ) if %j% == 5 ( msg * Такого значения не существует. echo Такого значения не существует. ping -n 2 127.0.0.1 > NUL cls goto x ) else ( cls ) if %j% == 5 ( msg * Такого значения не существует. echo Такого значения не существует. ping -n 2 127.0.0.1 > NUL cls goto x ) else ( cls ) if %j% == 6 ( msg * Такого значения не существует. echo Такого значения не существует. ping -n 2 127.0.0.1 > NUL cls goto x ) else ( cls ) if %j% == 7 ( msg * Такого значения не существует. echo Такого значения не существует. ping -n 2 127.0.0.1 > NUL cls goto x ) else ( cls ) if %j% == 8 ( msg * Такого значения не существует. echo Такого значения не существует. ping -n 2 127.0.0.1 > NUL cls goto x ) else ( cls ) if %j% == 9 ( msg * Такого значения не существует. echo Такого значения не существует. ping -n 2 127.0.0.1 > NUL cls goto x ) else ( cls ) if %j% == 0 ( shutdown /a msg * Таймер был отключён! cls exit ) else ( cls ) if %any% == 1 ( echo Вы выбрали- завершение работы ping -n 2 127.0.0.1 > NUL cls ) else ( echo Вы выбрали- перезагрузку ping -n 2 127.0.0.1 > NUL cls ) if %any% == 1 ( set /p sec="Введите время до завершения работы (в минутах): " ) else ( set /p sec="Введите время до перезагрузки (в минутах): " ) set /a min=%sec%*60 cls if %any% == 1 ( shutdown /s /t %min% msg * Компьютер выключится через %sec% минут! ) else ( shutdown /r /t %min% msg * Компьютер перезагрузится через %sec% минут! )
Кодировка ANSI Вот довольно простой и функцианальный батник
Добавить комментарий Отменить ответ Популярные записиОпределить IP адрес по MAC адресу через arp кеш в командной строке или bat файле
Расчет платежей ЖКУ в Excel за воду, электричество, газ по показаниям счетчиков
Расчет ДЧП в Excelс пересчетом суммы платежа и подсчетом процентов
Свежие комментарии-
nhutils к Синтез речи в Windows 8 и старше 12.05.2022
Добрый день, у SpeechSynthesizer есть такое свойство Rate. Его можно задать в PowerShell скрипте, который вызывается из bat. $speech.SelectVoice('Microsoft Irina…
привет! А как скорость ему сетнуть!.bat files
Привет, Я разработал небольшой инструмент, который позволяет исправлять установленные голоса, чтобы сделать их доступными для механизма преобразования текста в речь…
спасибо за обратную связь
Разобрался. Птичий язык, это если не установлена русская локаль. У меня оборудование буржуйское, поэтому стоит локаль USA. Поменял на Русскую…