定时关机脚本

界面如下:

新建个文本文档,后缀改成.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
相关推荐
Felven22 分钟前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
江湖有缘27 分钟前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚36 分钟前
mall 电商项目完整部署---实战
linux·运维·docker·容器
爱和冰阔落1 小时前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php
Decay__1 小时前
01_SQLServer 体系架构全解 —— 实例进程、关系引擎、SQLOS 与事务日志深入
运维·数据库·sql·mysql·架构
我是koten7 小时前
【运维杂谈】K8s遇到Terminating的名称空间删除不了怎么办?(解决方案亲测有效)
linux·运维·服务器·云原生·kubernetes·k8s·名称空间
修己xj15 小时前
服务器无法解析域名?一次 DNS 配置缺失的排查与修复
运维
xbzb20 小时前
自定义 yum 软件源:Linux 上 createrepo,Windows 上纯 Python 也能造
linux·运维·windows·python·yum·createrepo
Android系统攻城狮20 小时前
Linux FFmpeg深度解析之avio_open调用流程与实战(三十八)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
瑞克-桑切斯21 小时前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka