powershell -Command "(Get-Content '%~f0') -join \"`r`n\" | Set-Content '%~f0'"
more +3 "%~f0" > "PowerMgr_temp.txt"
move /y "PowerMgr_temp.txt" "%~f0" && del PowerMgr_temp.txt && exit
echo off
chcp 65001
:start
setlocal enabledelayedexpansion
mode con:cols=55 lines=15
cls
title Управление питанием ПК
echo Время:
time /t
echo Дата:
date /t
echo.
set ans=
echo Компьютер должен:
echo 1. Выключиться?
echo 2. Перезагрузиться?
echo 3. Выйти из системы?
echo 4. Гибернироваться?
echo 5. Запустить таймер сна?
echo 6. Выключить таймер сна?
echo.
set /p ans=Введите действие ПК: 
if "!ans!"=="1" goto 1
if "!ans!"=="2" goto 2
if "!ans!"=="3" goto 3
if "!ans!"=="4" goto 4
if "!ans!"=="5" goto 5
if "!ans!"=="6" goto 6
if "!ans!"=="0" goto 0
if "!ans!" NEQ "1,2,3,4,5,6,0" goto invalid
:1
cls
echo Компьютер выключается...
timeout /t 1 /nobreak >nul
shutdown /s /t 0
exit
:2
cls
echo Компьютер перезагружается...
timeout /t 1 /nobreak >nul
shutdown /r /t 0
exit
:3
cls
echo Выход из системы...
timeout /t 1 /nobreak >nul
shutdown /l
exit
:4
cls
echo Компьютер гибернируется...
timeout /t 1 /nobreak >nul
shutdown /h
exit
:5
cls
:55
echo Режимы:
echo.
echo 1. Выключение
echo 2. Перезагрузка
set func=
set timer=0
echo.
set /p func=Выберите режим: 
set /p timer=Установите время в секундах (пусто=0 сек):  
if !func!==1 shutdown /s /t !timer! && cls && echo Таймер выключения установлен на !timer! секунд. && echo Нажмите любую клавишу для возврата && pause >nul && goto start
if !func!==2 shutdown /r /t !timer! && cls && echo Таймер перезагрузки установлен на !timer! секунд. && echo Нажмите любую клавишу для возврата && pause >nul && goto start
echo Неверный режим
goto 55
:6
cls
echo Выключение таймера сна...
echo.
shutdown /a && cls && echo Таймер сна отключен, && echo нажмите любую клавишу для возврата
pause >nul
goto start
exit
:invalid
title Неверная команда, закрытие...
Echo Неверная команда, закрытие...
timeout /t 1 > nul
