最近一个朋友苦于找不到定时关机的功能,告诉我后决定用写一个批处理文件给他用。可是问题来了,对于win8.1已经不再支持at XX:XX shutdown -s的写法,但是仍然支持shutdown -s -t XXX的关机方式,于是自己封装了一下bat文件给他使用下面就贴出我的代码来。
:begin
@echo off
rem EQU - 等于
rem NEQ - 不等于
rem LSS - 小于
rem LEQ - 小于或等于
rem GTR - 大于
rem GEQ - 大于或等于
set nowTime=%date:~0,4%年%date:~5,2%月%date:~8,2%日%time:~0,2%时%time:~3,2%分%time:~6,2%秒
set nowHour=%time:~0,2%
set nowMin=%time:~3,2%
set/p hour=请输入关机小时并按回车:
if %hour% GTR 24 (
echo 小时数不能超过24,请重新输入小时
echo.
goto begin
) else (
if %hour% LSS 0 (
echo 小时数不能小于0,请重新输入小时
echo.
goto begin
) else (
if %hour% LSS %nowHour% (
echo 输入的小时小于当前小时,请重新输入小时
echo.
goto begin
)
)
)
:tab
set/p min=请输入关机分钟并按回车:
if %min% GTR 60 (
echo 分钟数不能超过60,请重新输入分钟
echo.
goto tab
) else (
if %min% LSS 0 (
echo 分钟数不能小于0,请重新输入分钟
echo.
goto tab
)
)
set downTime=%date:~0,4%年%date:~5,2%月%date:~8,2%日%hour%时%min%分%time:~6,2%秒
set/a downSecond=(%hour%-%nowHour%)*3600+(%min%-%nowMin%)*60
:next
echo.
shutdown -s -t %downSecond%
echo 当前时间:%nowTime%
echo 预计关机时间:%downTime%
pause