Содержание
- Выполнение пакетного сценария при завершении работы Windows
- 5 ответов
- Запуск bat при выключении компьютера
- Выполнение команд перед выключением ПК либо замена кнопки
- Как мне выполнить скрипт или программу при выключении Windows
- 5 ответов 5
- Как настроить автоматический запуск программ или скриптов при выключении Windows?
- Редактор локальной групповой политики Windows
- Запуск сценария или программы при завершении работы Windows
- Запуск сценария или программы при выходе пользователя из системы Windows
Выполнение пакетного сценария при завершении работы Windows
В идеале такой скрипт покажет окно командной строки и предложит возможность отменить процедуру завершения работы.
решения, которые не требуют сторонней утилиты, были бы предпочтительнее.
5 ответов
можно создать политику локального компьютера в Windows. См. TechNet в http://technet.microsoft.com/en-us/magazine/dd630947
Ну, это простой способ сделать некоторые изменения реестра: Я пробовал это на 2008 R2 с и 2016 сервера.
вещи должны быть сделаны:
Сохраните этот файл как regedit.Редж!—4—> расширение
запустить его в командной строке, используя ниже команда:
создайте свой собственный скрипт выключения-Myshutdown.bat-и сделайте все, что вы собирались сделать в своем скрипте, а затем в конце его вызовите shutdown /a. Затем запустите файл bat вместо обычного завершения работы.
Я нашел эту тему при поиске сценария запуска для запуска и выключения Windows 10. Эти ответы выше не работает. Для меня на windows 10 работал, когда я ставил скрипты в планировщик задач. Как это сделать: нажмите клавишу window и напишите планировщик задач, откройте его, затем справа добавьте задачу. кнопка. Здесь можно добавлять скрипты. PS:я нашел действие для запуска и выхода из системы пользователя, нет для выключения.
для приведенного выше кода для работы; вам нужно убедиться, что существуют следующие каталоги (мои нет). Просто добавьте следующее в летучую мышь и запустите ее:
просто GP нужно, чтобы эти каталоги существовали для:
Источник
Запуск bat при выключении компьютера
Сообщения: 34
Благодарности:
ой, там много, или xml файлом можно где-то он лежит? Или какие-то именно выкладки свойства задачи показать?
В общем, при входе пользователя в систему работает, а при запуске системы (При включении) не хочет, ошибка выше
Читайте также: работают вентиляторы после выключения компьютера
скажите, у вас есть http://technet.microsoft.com/ru-ru/l. /cc770300.aspx
редактор локальной групповой политики?
Я что-то у себя не нахожу где он( видимо действительно нет((
Сообщения: 36075
Благодарности: 6525
nk_, в домашних изданиях нет gpedit.msc.
Для начала объясните, что вы хотите выполнить и зачем вам это нужно, прилагая код исполняемых файлов и экспортированное задание в XML. Иначе так и будете тут диалог с собой вести.
Сообщения: 36075
Благодарности: 6525
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″> » width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 36075
Благодарности: 6525
nk_, на вкладках Общие и Триггеры задания
Источник
Выполнение команд перед выключением ПК либо замена кнопки
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Сохранение данных перед выключением компьютера
Всем доброго времени суток! Как перед перезагрузкой или перед выключением компьютера сохранить.
Как сделать запуск перед перезагрузкой или выключением?
Что можно сделать чтобы прога запускалась перед перезагрузкой или выключением компа.
Пуск->Выключение. нужно добавить команду перед выключением
как сделать, чтобы при нажатии на кнопку сначала выполнялась команда, затем выключался сам.
Программа осуществляет напоминание по завершении работы Windows.
Текстовой файл (напоминание), должен быть в каталоге программы.
Если напоминание носит имя «wRemendir.txt» будет стартовое сообщение
«Напоминание будет осуществленно. «
На снимке, изображена проверка.
Вложения
Remendir.zip (47.9 Кб, 19 просмотров) |
Я немецкий учил поэтому и на оснуху бывает проруха.
1. Исправлено имя
2. Добавлен переключатель, чтобы не только при перезагрузки останавливало
Вложения
Remindir.zip (48.5 Кб, 28 просмотров) |
Программа получает сообщение Windows «WM_QUERYENDSESSION», что
— ОС, собирается: перезагрузить или выключить компьютер, на это, если
пользователь не сохранил документ, «Блокнот» отправит OC нуль (return 0)
появится диалоговое окно с предложением сохранить/отменить.
Если «Блокнот» видит, что данные не изменены, он отправляет Единицу (Добро)
Вот краткое описание.
Пожалуй, что помимо всего, установлены флаги МесжБокса, что позволяет вывести
сообщение поверх всех окон, в другом случае, ОС перекроет Бокс, хотя в Windows XP
наверное нет.
Источник
Как мне выполнить скрипт или программу при выключении Windows
Я хочу запустить exe или bat файл при закрытии окна? Я хочу отключить несколько дисков, которые монтируются моим приложением, когда пользователь выключает систему.
Для этого мне нужно выполнить еще один exe при завершении работы, который отключит диски, установленные моим приложением.
У меня есть несколько ссылок, которые показывают, что мы можем создать запись в групповой политике для выполнения программы при закрытом окне. Я не уверен, как я могу добавить запись в Group ploicy с помощью кода C++.
Опять же, групповая политика не работает с Win Vista. Любой другой лучший подход?
5 ответов 5
В дополнение к написанию собственного пакетного файла для выключения и выполнения того, что вы хотите, вы можете запланировать задачу на то же самое, поэтому вам не нужно будет нажимать на ярлык, чтобы отключить его особым образом или что-то в этом роде.
Использование Admin Tools | Планировщик задач Вы можете запланировать задачу на основе зарегистрированных событий в журнале системных событий. Событие выключения / перезапуска связано с журналом системных событий с источником USER32, с идентификатором события 1074. Когда журнал событий обновляется этой информацией, должна быть запущена запланированная задача. Я проверял это на коробке на работе, и она работала просто отлично, но я администратор в домене и не уверен, что у вас возникнут проблемы с разрешением или что-то в этом роде.
В планировщике задач Windows создайте базовую задачу, например:
Источник
Как настроить автоматический запуск программ или скриптов при выключении Windows?
Вы когда-нибудь хотели запустить программу или сценарий при выключении компьютера или при выходе пользователя из системы? В конце дня вызвать программу для очистки временных файлов или запустить резервное копирование регулярно используемых файлов. Несмотря на то, что выполнить автоматический запуск программы при старте Windows достаточно просто, настройка запуска программ при выключении не столь очевидна. Немногие пользователи об этом знают, но во многих версиях Windows есть встроенный инструмент, который позволяет сделать это достаточно просто.
Редактор локальной групповой политики Windows
Хитрость заключается в том, чтобы использовать системный инструмент Windows под названием «Редактор локальной групповой политики» (GPE). К сожалению, Microsoft исключила GPE из всех Home версий, так что этот метод применим только к таким версиям, как Professional и Enterprise. Метод подходит для Windows XP и выше. Возможно вы уже знакомы с GPE, так как данный инструмент представляет множество удобных функций. Тем не менее, даже в таком случае, о возможности запуска сценариев и программ знают немногие.
Примечание: Как альтернативу, вы всегда можете использовать vbs-сценарии или пакетные файлы, вызов которых будет заканчивается запуском консольной команды выключения компьютера.
GPE является одним из системных модулей Windows, известных под названием консоль управления Microsoft или оснастка. Хоть, некоторые из них можно запустить из панели управления Windows, найти их в списках программ нельзя. Учтите, что для запуска оснасток потребуются права администратора.
Запуск сценария или программы при завершении работы Windows
Запуск сценария или программы при выходе пользователя из системы Windows
Если вам необходимо запускать программу или сценарий только при выходе пользователя из системы, то в оснастке GPE необходимо использовать другой пункт. Сама инструкция остается точно такой же. Единственно, вам необходимо на шаге 3 раскрыть вместо вкладки «Конфигурация компьютера» вкладку «Конфигурация пользователя». И на шаге 4 дважды щелкнуть на пункте «Выход из системы» вместо «Завершение работы»
Примечание: Данная статья в большей степени предназначена для опытных пользователей. Дополнительные сведения об использовании и планировании через GPE можно найти на сайте Microsoft по этой ссылке.
Теперь вы знаете как запустить исполняемый файл при выключении Windows и при выходе пользователя из системы.
Источник
I need to run batch scripts at shutdown of Windows 10 home edition, both on manual restarts and on automatic restarts due to Windows automatic updates. This needs to work while no users are logged in too.
So far I’ve tried:
- Scheduled Task at eventid 1047 (discarded, won’t wait till my script is over).
- Manually adding Group Policy shutdown scripts to registry and to C:WINDOWSSYSTEM32GroupPolicy (discarded, won’t run since it looks like the functionality is disabled by restraints imposed by the Windows edition.)
- Third party software. Weird enough, I couldn’t find any free tool that would run as a service and allow me to add .bat files to be run at system (or service) shutdown.
- I tried AutoHotkey + NSSM [The Non-Sucking Service Manager] as a custom service, but AutoHotkey’s events wouldn’t trigger every time.
I’m quite disenchanted with this limitation. 🙁
Any ideas?
Edit1: Take into account Windows automatic updates.
Edit2: This needs to work while no users are logged in too.
Edit4: I’m waiting for the next Windows automatic restart due to a Windows update to see if running shutdown -a
at the beginning of the batch file and then shutdown -s
at the end within a scheduled task at shutdown event approach works.
Edit5: Bummer, it didn’t work. The scheduled task did not start: Error: «Shutdown in progress». I guess my only hope is a third-party tool.
Hennes
64.3k7 gold badges110 silver badges165 bronze badges
asked Apr 21, 2017 at 20:51
7
I’ve done this with AutoHotkey before. This script is tested and working.
I made a basic batch file that will create a «test file» on the desktop.
Just run the AHK file and leave it running. When the script detects a shutdown, it’ll run the batch file.
Make sure you set the path to your text file at the top of the script.
AutoHotkey Script:
;==============================
;Set the path to your batch file.
path := "C:batch.bat"
;==============================
; Run script as admin. This will allow your batch file to be ran with admin priv.
if not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%" ; Requires v1.0.92.01+
ExitApp
}
; Only allow one instance of the script to run.
#SingleInstance, Force
; If you don't want an icon to show in the tray,
; remove the semicolon from the line below.
;#NoTrayIcon
; When script detects WM_QUERYENDSESSION (a shutdown), run OnShutDown function.
OnMessage(0x11, "OnShutDown")
return
OnShutDown(){
; Run the batch file.
Run, % path
ExitApp
}
Batch file I used for testing:
echo Write file before shutdown > %USERPROFILE%DesktopShutdownTest.txt
If you wanted to, you could always execute your batch file commands directly through AHK.
answered Apr 29, 2017 at 4:06
3
Update: If it is something that needs to be done before the next user logs on, putting it in the machine startup script might fulfill your need. If it is something that has to be done before power off, shutdown script is your answer.
If Home edition does not allow you to modify the local policy to make these scripts work, then that is a limitation of the home edition and you may need to upgrade. However, TechNet does not narrow their explanation of how to set up a shutdown script beyond Windows #.
Also, the machine shutdown script will run with permissions of the computer. The user log off script will run with the logged on user’s permissions.
Use a batch script to shut down? Just use the shutdown command («shutdown -t 0») at the end of your shutdown script. Put a shortcut to the script on your desktop, use a power button icon. (Removed answer based on single user shutdown by script instead of start menu shutdown option).
answered Apr 24, 2017 at 14:26
Jeter-workJeter-work
5132 silver badges9 bronze badges
2
I need to run batch scripts at shutdown of Windows 10 home edition, both on manual restarts and on automatic restarts due to Windows automatic updates. This needs to work while no users are logged in too.
So far I’ve tried:
- Scheduled Task at eventid 1047 (discarded, won’t wait till my script is over).
- Manually adding Group Policy shutdown scripts to registry and to C:WINDOWSSYSTEM32GroupPolicy (discarded, won’t run since it looks like the functionality is disabled by restraints imposed by the Windows edition.)
- Third party software. Weird enough, I couldn’t find any free tool that would run as a service and allow me to add .bat files to be run at system (or service) shutdown.
- I tried AutoHotkey + NSSM [The Non-Sucking Service Manager] as a custom service, but AutoHotkey’s events wouldn’t trigger every time.
I’m quite disenchanted with this limitation. 🙁
Any ideas?
Edit1: Take into account Windows automatic updates.
Edit2: This needs to work while no users are logged in too.
Edit4: I’m waiting for the next Windows automatic restart due to a Windows update to see if running shutdown -a
at the beginning of the batch file and then shutdown -s
at the end within a scheduled task at shutdown event approach works.
Edit5: Bummer, it didn’t work. The scheduled task did not start: Error: «Shutdown in progress». I guess my only hope is a third-party tool.
Hennes
64.3k7 gold badges110 silver badges165 bronze badges
asked Apr 21, 2017 at 20:51
7
I’ve done this with AutoHotkey before. This script is tested and working.
I made a basic batch file that will create a «test file» on the desktop.
Just run the AHK file and leave it running. When the script detects a shutdown, it’ll run the batch file.
Make sure you set the path to your text file at the top of the script.
AutoHotkey Script:
;==============================
;Set the path to your batch file.
path := "C:batch.bat"
;==============================
; Run script as admin. This will allow your batch file to be ran with admin priv.
if not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%" ; Requires v1.0.92.01+
ExitApp
}
; Only allow one instance of the script to run.
#SingleInstance, Force
; If you don't want an icon to show in the tray,
; remove the semicolon from the line below.
;#NoTrayIcon
; When script detects WM_QUERYENDSESSION (a shutdown), run OnShutDown function.
OnMessage(0x11, "OnShutDown")
return
OnShutDown(){
; Run the batch file.
Run, % path
ExitApp
}
Batch file I used for testing:
echo Write file before shutdown > %USERPROFILE%DesktopShutdownTest.txt
If you wanted to, you could always execute your batch file commands directly through AHK.
answered Apr 29, 2017 at 4:06
3
Update: If it is something that needs to be done before the next user logs on, putting it in the machine startup script might fulfill your need. If it is something that has to be done before power off, shutdown script is your answer.
If Home edition does not allow you to modify the local policy to make these scripts work, then that is a limitation of the home edition and you may need to upgrade. However, TechNet does not narrow their explanation of how to set up a shutdown script beyond Windows #.
Also, the machine shutdown script will run with permissions of the computer. The user log off script will run with the logged on user’s permissions.
Use a batch script to shut down? Just use the shutdown command («shutdown -t 0») at the end of your shutdown script. Put a shortcut to the script on your desktop, use a power button icon. (Removed answer based on single user shutdown by script instead of start menu shutdown option).
answered Apr 24, 2017 at 14:26
Jeter-workJeter-work
5132 silver badges9 bronze badges
2
Всем привет.
Есть задача выполнять обслуживание компьютера, когда пользователь жмет на кнопку — завершить работу Windows и уходит домой.
В моем случае, необходимо запускать скрипт полной проверки компьютера на вирусы, и как вы понимаете длится этот процесс может до нескольких часов. Когда искал решение этой проблемы, встречал что люди например
при выключении компьютера запускают скрипт бэкапа всех наработанных данных пользователя, и когда они достигают нескольких гигабайт скрипт так же не успевает завершить свою работу, система завершает процесс клиента групповой политики gpsvc.
Для реализации данной задачи
Сначала включаем отображение консоли при завершении работы, чтобы пользователь мог видеть работу и сообщения нашего скрипта, а так же закрыть его и завершить работу Windows немедленно если захочет.
Конфигурация компьютера Административные шаблоны Система Сценарии — Выполнить сценарии завершения работы с отображением команд (Включить)
Computer Configuration Policies Administrative Templates System Scripts — Display instructions in shutdown scripts as they run (Enabled)
Далее прописываем путь к скрипту в
Computer Configuration Policies Windows Settings Scripts (Startup/Shutdown) — Shutdown
Конфигурация компьютера Конфигурация Windows Сценарии (запускзавершение) — Завершение работы
И по умолчанию при выключении компьютера, система автоматически завершает работу таких скриптов ровно через 10 минут.
Используем другую настройку политик, которая позволяет указать какое время могут выполняться скрипты групповой политики и система не будет их убивать.
Computer Configuration Policies Administrative Templates System Scripts — Specify maximum wait time for Group Policy scripts
Конфигурация компьютера Административные шаблоны Система Сценарии — Максимальное время выполнения сценариев групповой политики
По умолчанию там установлено значение 600 секунд (10 минут), меняем его на максимальное 32000 (8,8 часов) либо на 0 (ждать бесконечно)
И данная настройка работает в старенькой Windows XP скрипт работает сколь угодно долго! но перестает работать в следующих системах .
Windows 10 начинает убивать Клиент групповой политики ровно через 24 минуты
Windows 8.1 и Windows 7 убивают Клиент групповой политики ровно через 15 минут
Реализация обслуживания когда пользователь уже ушел и ему все равно, очень удобна для всех. И сам майкрософт этим активно пользуется когда можно выбрать пункт в винде — Запустить обновление и выключить компьютер.
Помогите найти что убивает Клиент групповой политики.
В разделе «Контроль памяти» Windows 11 вы можете настроить очистку Корзины таким образом, что все файлы возрастом более 24 часа будут удаляться автоматически. Эти 24 часа являются минимальным периодом, по истечении которого Windows сможет удалить помещенные в Корзину файлы, но ведь есть еще такая штука как пользовательские скрипты. Допустим, вы хотите сделать так, что Корзина очищалась при перезагрузке или завершении работы компьютера.
Использование скрипта
Воспользуемся простейшим сценарием PowerShell, который станет очищать Корзину при завершении работы Windows.
Создаем в Блокноте текстовый файл и вставляем в него следующую команду:
PowerShell.exe -NoProfile -Command Clear-RecycleBin -Confirm:$false
Сохраняем файл как clear.cmd или clear.bat.
Если этот файл запустить, Корзина будет очищена, но нам нужно автоматизировать процесс, привязав его к определенному событию.
Если бы Корзина очищалась при включении компьютера или входе в систему, можно было воспользоваться Планировщиком заданий, но так как Корзину нужно очистить при завершении работы компьютера, воспользуемся редактором локальных групповых политик.
Открываем его командой gpedit.msc и переходим по цепочке Конфигурация компьютера -> Конфигурация Windows -> Сценарии и выбираем в правой колонке «Завершение работы».
Жмем в открывшемся окошке кнопку «Добавить».
И указываем путь к ранее созданному скрипту.
Жмем «Применить» и «OK».
После этого при выключении или перезагрузке компьютера Корзина будет очищаться автоматически.
Этот способ работает в Windows 10 (в 11 версии может не работать), в Windows 8.1 и 7 в командный файл нужно прописать команду RD D:RECYCLER /Q/S, где D — буква тома с очищаемой Корзиной.
Загрузка…
Автоматизация некоторых процессов на компьютере часто позволяет существенно увеличить удобство использования ПК не только в работе, но и в повседневной жизни. В одном из топиков мы, к примеру, рассматривали способы добавления любой программы в автозагрузку компьютера: Автозагрузка. Добавление приложений в автозагрузку Windows.
Данная статья будет посвящена такому моменту, как автоматическое выключение компьютера через заданный промежуток времени. Все манипуляции мы будем производить исключительно средствами самой системы Windows, без использование сторонних программ. Кроме того, не станем ограничиваться выполнением голых команд, а добавим всему процессу немного юзабилити.
Содержание статьи:
Как выполнить shutdown для выключения и перезагрузки компьютера
Не будем срываться с места в карьер, начнём с самого начала. А начало — это основная команда для выключения компьютера, которую мы будем использовать. В ОС Windows для завершения работы достаточно передать системе команду shutdown с нужными параметрами.
В принципе, команду shutdown можно выполнять разными способами:
Все три способа схожи, поддерживают одни и те же параметры, поэтому мы не будет заострять на этом внимание и весь процесс будем выполнять в консоли, то есть в командной строке системы 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 /?
Автоматическое выключение компьютера через определённое время
Итак, переходим к практическому применению информации, которую мы собрали в первых двух главах.
Допустим, мы смотрим фильм и понимаем, что можем уснуть, не выключив компьютер. Нам нужно, чтобы компьютер выключился сам через 30 минут. Для этого необходимо выполнить следующую команду (мы помним, что сделать это можно не только в командной строке, но также через утилиту Выполнить или в меню Пуск):
shutdown -s -f -t 1800
Используемые параметры нам уже знакомы. А значение 1800 задаёт значение времени в секундах, через которое будет произведено завершение работы. То есть, 1800 секунд = 1800 секунд / 60 секунд в минуте = 30 минут. С этим проблем возникнуть не должно. После выполнения команды мы получим системное уведомление, о том, что запланировано завершение работы
Кроме того, за 10 минут до момента завершения работы вне зависимости от запланированной причины (выключение или перезагрузка) мы получим дополнительное предупреждение от системы Windows
Но как быть, если, допустим, спустя минут 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 или 0. , подтверждаем ввод клавишей Enter.
- Консоль перейдёт к соответствующей части кода и, если это выключение или перезагрузка, спросит, через сколько минут произвести требуемое действие.
- Потом введённое значение преобразуется в секунды и добавляется в команду, параметры которой и определяют запланированное действие.
Скачать готовый bat-файл для автоматического выключения компьютера можно из прикреплённого архива: auto-shutdown-bat.
Для удобства можно упаковать получившийся батник в SFX-архив и добавить к нему иконку. В итоге получится простая портативная программа для автоматического выключения и перезагрузки компьютера через заданный интервал времени: auto-shutdown-exe.