最近一個朋友苦於找不到定時關機的功能,告訴我後決定用寫一個批處理文件給他用。可是問題來了,對於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