批处理定时关机
@echo off REM Author: YooooungLee TEL 155-****-9552 echo 欢迎使用自动关机计划设置脚本! echo. :choose_action set /p "action_choice=请选择要执行的操作(输入1设置定时关机任务,输入2删除定时关机任务):" if "%action_choice%"=="1" ( echo. echo -- 设置定时关机任务 -- echo. REM 设置定时关机任务脚本 goto set_shutdown_task ) if "%action_choice%"=="2" ( echo. echo -- 删除定时关机任务,如提示“错误:拒绝访问”,请退出后,以管理员权限重新运行程序 -- echo. REM 删除定时关机任务脚本 goto delete_shutdown_task ) echo 错误:无效的选项,请输入1或2来选择操作。 echo. pause goto choose_action :set_shutdown_task :: 之前完成的设置定时关机任务的脚本 setlocal enabledelayedexpansion :input_time set /p shutdown_time=请输入每日关机时间(格式为HH:mm,例如 20:00 表示晚上8点): rem 检查输入的时间格式是否正确 for /f "tokens=1,2 delims=:" %%a in ("%shutdown_time%") do ( set "hour=%%a" set "minute=%%b" ) rem 检查小时和分钟是否都是数字 echo %hour% | findstr /r "[0-9]" >nul if %errorlevel% neq 0 ( echo 错误:输入的时间格式不正确,请重新输入。 goto input_time ) echo %minute% | findstr /r "[0-9]" >nul if %errorlevel% neq 0 ( echo 错误:输入的时间格式不正确,请重新输入。 goto input_time ) rem 检查小时和分钟是否在合法范围内(小时:00到23,分钟:00到59) if %hour% lss 0 ( echo 错误:输入的小时值不能小于0,请重新输入。 goto input_time ) if %hour% gtr 23 ( echo 错误:输入的小时值不能大于23,请重新输入。 goto input_time ) if %minute% lss 0 ( echo 错误:输入的分钟值不能小于0,请重新输入。 goto input_time ) if %minute% gtr 59 ( echo 错误:输入的分钟值不能大于59,请重新输入。 goto input_time ) echo 正在设置每日 %shutdown_time% 自动关机... echo 请勿关闭此窗口,否则设置将失效. :: 删除之前设置的同名自动关机任务(如果存在) schtasks /delete /tn "每日自动关机" /f >nul 2>&1 :: 创建新的自动关机任务 schtasks /create /tn "每日自动关机" /tr "shutdown /s /f /t 0" /sc daily /st %shutdown_time% echo 每日 %shutdown_time% 自动关机任务设置完毕。 echo 可以双击此脚本再次设置计划任务或手动删除计划任务。 pause goto :EOF :delete_shutdown_task :: 删除定时关机任务的脚本 echo 正在删除之前设置的每日自动关机任务... schtasks /delete /tn "每日自动关机" /f echo 已删除之前设置的每日自动关机任务。 pause goto :EOF