
界面如下新建个文本文档后缀改成.batecho off color 20 title 定时关机工具 当前时间%time% echo 定时关机工具 echo ------------------------------------------ echo 0.立刻关机 echo 1.设置1小时后关机 2.设置2小时后关机 echo 3.设置3小时后关机 4.设置4小时后关机 echo 5.设置5小时后关机 6.设置6小时后关机 echo 7.设置7小时后关机 8.设置8小时后关机 echo 9.设置9小时后关机 10.设置10小时后关机 echo 11.手动输入时间 echo 12.取消刚才的设置 echo ------------------------------------------ :main echo. set /p h输入选项对应数字,并按Enter键确定 echo %h% | findstr /r [0-9] nul if %errorlevel% neq 0 (echo 错误请输入整数 goto main) if %h% equ 11 goto shuru if %h% equ 12 goto quxiao if %h% gtr 12 (echo 无此选项请重新输入 goto main) if %h% lss 0 (echo 负数请重新输入 goto main) rem 以上4个if都不满足才会执行以下4行 set /a sech*3600 shutdown /s /f /t %sec% echo ---[设置成功电脑将在%h%小时后关机] pausenul exit :quxiao shutdown /a echo ——已取消定时关机 pausenul exit :shuru echo. echo 【子菜单】请输入几点几分中间以空格隔开例如22 09 set /p inputtime请输入 for /F tokens1 delims %%i in (%inputtime%) do set h2%%i for /F tokens2 delims %%j in (%inputtime%) do set m2%%j rem 获取系统当前时针和分针 for /F tokens1 delims: %%a in (%time%) do set /a h1%%a for /F tokens2 delims: %%b in (%time%) do set /a m1%%b rem 检查输入的时间是否是数字 echo %h2% | findstr /r [0-9] nul if %errorlevel% neq 0 (echo 错误非数字请重新输入 goto shuru) echo %m2% | findstr /r [0-9] nul if %errorlevel% neq 0 (echo 错误非数字请重新输入 goto shuru) rem 检查输入的时针和分针是否合法 if %h2% lss %h1% (echo 时间早于当前重来 goto shuru) if %h2% gtr 23 (echo 时针大于23重来 goto shuru) if %m2% lss 0 (echo 分针小于0重来 goto shuru) if %m2% gtr 59 (echo 分针大于59重来 goto shuru) rem 计算输入时间减去当前时间的差 set /a h3%h2%-%h1% set /a m3%m2%-%m1% rem 将时间差换算成分和秒 set /a minut%h3%*60%m3% set /a sec1%h3%*3600%m3%*60 echo. shutdown /s /f /t %sec1% echo ---[设置成功距离关机还有%minut%分钟] pausenul