::`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./ ~!@#$%*)_WERTYUIOP{}|SDFGHJKL:"ZXCVBNM<>?
::本想过滤特殊字符,防止误输入,可是bat的处理非常郁闷,于是就不考虑这块了.
@echo off
title 定时关机工具
color
shutdown /a
cls
:loop
echo.
echo 已经取消自动定时关机
echo 请选择操作
echo.
echo 请输入多少分钟后自动关机数字
echo 或关闭退出
echo.
set ttt=no
set /p ttt=
set /a ttt*=60
if %ttt% gtr 0 (
goto close
)else (
goto e_input
)
:eof_input
:e_input
shutdown /a
cls
echo.
echo 输入有误,请重新输入
echo.
goto loop
:eof_e_input
:close
shutdown /a
cls
color 09
shutdown /s /f /c "用户设定自动定时关机" /t %ttt%
set /a ttt/=60
title 在%time%设定了 %ttt% 分钟后自动关闭计算机,在本窗口按任意键可以取消
echo 您在%time%时,设定了 %ttt% 分钟后自动关闭计算机
echo.
echo 在本窗口按任意键将取消自动关机
echo.
echo 如不小心关闭了本窗口后,需重新打开本程序才会取消自动关机
set /p no=
echo 自动关机已经被取消
shutdown /a
echo.
echo 本窗口稍候自动关闭...
ping 127.0.0.1 -n 5 >nul
goto :EOF
exit
:eof_close
::因为bat无法多线程,使用倒计时就不能取消,只能重新打开程序才能取消,不方便,就不倒计时了.