有时因为测试或者其他原因,需要电脑在人不在的时候依旧开着,但又不希望一直开着,这时希望能有一个简单的定时关机方法。网上有很多相关的软件,这里提供一个bat脚本实现的方法。
@echo off
::使用set进行设置变量,并使用/p参数让命令暂停运行,提供用户在cmd窗口输入变量的机会
set ht=%time:~0,2%
set mt=%time:~3,2%
set st=%time:~6,2%
set h=0
set m=0
set s=0
set var=0
set cmd=0
set /p cmd=输入命令,a:取消关机,y:继续关机
if %cmd% EQU a goto cancel
set /p var=请输入关机时间(以秒计)
::/a表示进行数据计算
set /a h=%m%/3600
set /a m=%var%/60-%h%*60
set /a s=%var%-%m%*60-%h%*3600
::当前秒数st加上换算后的秒数s
set /a st=%st%+%s%
::当前的分钟数mt加上换算后的分钟数m再加上st中转换出的分钟数
set /a mt=%mt%+%m%+%st%/60
::将秒数中60的倍数转换为分钟,余下的作为当前的秒数st
set /a st=%st%-(%st%/60)*60
::当前的小时数ht加上换算后的小时数h再加上mt中转换出的小时数
set /a ht=%ht%+%h%+%mt%/60
::将分钟数中60的倍数转换为小时,余下的作为当前的分钟数mt
set /a mt=%mt%-(%mt%/60)*60
if %ht% LEQ 9 set ht=0%ht%
if %mt% LEQ 9 set mt=0%mt%
if %st% LEQ 9 set st=0%st%
if %h% LEQ 9 set h=0%h%
if %m% LEQ 9 set m=0%m%
if %s% LEQ 9 set s=0%s%
shutdown -s -t %var%
echo 电脑将在%date:~0,4%-%date:~5,2%-%date:~8,2% %ht%:%mt%:%st%关机(即%h%时%m%分%s%秒后关机)
goto end
:cancel
shutdown -a
echo 已经取消关机
:end
pause
直接将该代码保存为bat脚本执行即可。