定时关机脚本

界面如下:

新建个文本文档,后缀改成.bat

复制代码
@echo 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 sec=h*3600
shutdown /s /f /t %sec%
echo ---[设置成功!电脑将在%h%小时后关机!]
pause>nul & exit

:quxiao
shutdown /a
echo ------已取消定时关机 & pause>nul & exit

:shuru
echo.
echo 【子菜单】请输入几点几分,中间以空格隔开,例如22 09
set /p inputtime=请输入:
for /F "tokens=1 delims= " %%i in ("%inputtime%") do set "h2=%%i"
for /F "tokens=2 delims= " %%j in ("%inputtime%") do set "m2=%%j"
rem 获取系统当前时针和分针
for /F "tokens=1 delims=:" %%a in ("%time%") do set /a h1=%%a
for /F "tokens=2 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%分钟]
pause>nul
相关推荐
忆挽篱笙歌37 分钟前
环境变量,本地变量
linux·运维·服务器
码间留白2 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions
吹什么轩3 小时前
linux系统复习:僵尸进程与孤儿进程
linux·运维·php
老李IT笔记4 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
小此方4 小时前
Linux网络(二十八):从NAT转换到正反向代理:图解内网通信、NAPT端口映射
linux·运维·网络
刚入门的大一新生4 小时前
Linux-进程池
linux·运维·服务器
数据库小学妹4 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
AliCloudROS5 小时前
从 1 万到 20 万:OOS Loop 任务规模提升 20 倍的攻坚记录
运维·性能优化
千桐科技5 小时前
qModel算法模型平台功能解析:从源码到 Docker 镜像,部署能自动完成哪些工作?
运维·docker·容器·qmodel
刚入门的大一新生5 小时前
Linux-进程间通信1
linux·运维·服务器