@ECHO off
TITLE 自动关机程序 作者:廖晓青

:start
CLS
COLOR 1f
rem 使用COLOR命令对控制台输出颜色进行更改
MODE con: COLS=41 LINES=18
rem MODE语句为设定窗体的宽和高
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
ECHO %date% %tm1%点%tm2%分%tm3%秒
ECHO =========================================
ECHO 请选择要进行的操作,然后按回车
ECHO ───────────────
ECHO.
ECHO 1. 定时关机
ECHO 2. 倒计时关机
ECHO 3. 删除定时关机任务
ECHO 4. 查看任务状态
ECHO 5. 刷新当前时间
ECHO 6. 重新启动
ECHO 7. 锁定计算机
ECHO 8. 注销
ECHO 9. 退出
ECHO.

:cho
SET Choice=
SET /P Choice=选择:
rem 设定变量"Choice"为用户输入的字符
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
rem 如果输入大于1位,取第1位,比如输入132,则返回值为1
ECHO.
IF /I "%Choice%"=="1" GOTO SetHour
IF /I "%Choice%"=="2" GOTO outtime
IF /I "%Choice%"=="3" GOTO delAt
IF /I "%Choice%"=="4" GOTO view
IF /I "%Choice%"=="5" GOTO start
IF /I "%Choice%"=="6" GOTO restart
IF /I "%Choice%"=="7" GOTO lock
IF /I "%Choice%"=="8" GOTO logoff
IF /I "%Choice%"=="9" GOTO end
rem 为避免出现返回值为空或含空格而导致程序异常,需在变量外另加双引号
rem 注意,IF语句需要双等于号
rem 如果输入的字符不是以上数字,将返回重新输入
ECHO 选择无效,请重新输入
ECHO.
GOTO cho

:SetHour
CLS
ECHO.
SET ask=
SET /p ask=是否设定为每天执行关机命令(y/n):
IF NOT "%ask%"=="" SET ask=%ask:~0,1%
IF /I "%ask%"=="y" GOTO yes
IF /I "%ask%"=="n" GOTO no
GOTO SetHour

:yes
ECHO 请指定24小时制式时间,格式为 小时:分钟
SET shutdowntime=
SET /p shutdowntime=输入:
at %shutdowntime% /every:M,T,W,Th,F,S,Su tsshutdn 0 /delay:0 /powerdown >nul
rem 设定为每周的星期一至星期日,即为每天
IF NOT errorlevel 1 GOTO ok
rem 如果输入正确,就执行ok段的语句
ECHO %shutdowntime% 不是标准的时间格式,请重新输入
ECHO.
GOTO yes

:no
ECHO 请指定24小时制式时间,格式为 小时:分钟
SET shutdowntime=
SET /p shutdowntime=输入:
at %shutdowntime% tsshutdn 0 /delay:0 /powerdown >nul
IF NOT errorlevel 1 GOTO ok
ECHO %shutdowntime% 不是标准的时间格式,请重新输入
ECHO.
GOTO no

:ok
ECHO.
SET h=%shutdowntime:~1,1%
SET ah=%shutdowntime:~0,1%
SET am=%shutdowntime:~2,2%
SET bh=%shutdowntime:~0,2%
SET bm=%shutdowntime:~3,2%
IF "%h%"==":" (
SET HM=%ah%时%am%分
) ELSE (
SET HM=%bh%时%bm%分)
rem 如果输入h:mm则HM=h时mm分,否则HM=hh时mm分
IF /I "%ask%"=="y" ECHO 系统将于每天的%HM%关闭
IF /I "%ask%"=="n" ECHO 系统将于%HM%关闭
ECHO 设定完毕! 按任意键继续...
PAUSE >nul
GOTO start

:outtime
CLS
ECHO.
ECHO 请输入倒计时秒数
ECHO ────────
ECHO (设定后要取消,单击"确定"后按Ctrl+C键两次)
SET timed=
SET /p timed=输入:
tsshutdn %timed% /delay:0 /powerdown >nul
IF not errorlevel 1 GOTO ok
ECHO %timed% 是无效的关机时间,请重新输入
ECHO.
GOTO outtime

:delAt
cls
echo.
at /del /y
echo 定时关机任务已取消,按任意键继续...
pause >nul
GOTO start

:view
MODE con: COLS=85 LINES=18
COLOR 70
ECHO.
at
ECHO 按任意键继续...
PAUSE >nul
GOTO start

:restart
shutdown -r -t 0

:lock
rundll32.exe user32.dll,LockWorkStation
goto start

:logoff
logoff

:end
exit

经典批处理实现自动关机.BAT相关推荐

  1. 使用批处理脚本(BAT)调用FFMPEG批量编码视频

    使用批处理脚本(BAT)编码视频非常方便,尤其当视频序列非常多的时候,更是省了不少简单重复性劳动. 只要学会批处理里面几个基本的命令就行了,感觉和c/c++差不多. set:设置变量(注意:变量一般情 ...

  2. 提升BT下载速度,Windows 做种批处理脚本(.bat)启动方案

    BT下载,下载速度来源于其它人做种上传的速度,做种的人越多,下载速度越快,按照BT的算法, 理论上, 同等条件下,「做种的人」要比「不做种的人」获得更快的下载速度,做种速度快的人,要比做种慢的人获得更 ...

  3. 经典批处理教程(转)

    这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧! ...

  4. 【PC工具】windows批处理脚本一键bat脚本编辑器,bat转exe工具使用方法,附helloworld参考例程...

    今天给大家分享一个windows的批处理文件(.bat文件)转exe可执行文件的工具.先感谢开源大神们为我们提供这些NB的软件(下边那个F..K..的名字好像是作者哈) 先向大神致敬,感谢大神的辛苦付 ...

  5. ffmpeg mac 批量脚本_使用批处理脚本(BAT)调用FFMPEG批量编码视频

    使用批处理脚本(BAT)编码视频非常方便,尤其当视频序列非常多的时候,更是省了不少简单重复性劳动. 只要学会批处理里面几个基本的命令就行了,感觉和c/c++差不多. set:设置变量(注意:变量一般情 ...

  6. 批处理学习之Bat命令——获取当前盘符、当前目录、上级目录

    命令 当前盘符:%~d0 当前路径:%cd% 当前执行命令行:%0 当前bat文件路径:%~dp0 当前bat文件短路径:%~sdp0 测试 下载testBatPath.bat测试文件,双击.bat运 ...

  7. linux ping不通自动关机脚本,服务器断电自动关机bat脚本

    按网上资料,写了个服务器断电自动关机批处理.在2008上好用,在2003服务器不能用.何解? 代码如下 @echo off title 服务器断网自动关机 MODE con: COLS=50 LINE ...

  8. oracle批处理参数调用,bat调用jar包并传入多个参数

    下面的主法度是经由过程eclipse写的: 1.在Main函数接管bat文件传递的参数(String[] args) 如:   String ip =args[0]; String user=args ...

  9. bat批处理执行python_.bat批处理添加Python任务

    一.常用命令含义 例一.多进程python 任务  --  start 命令 @echo offstart python C:\Users\ntitled\n\update_restt\test_ba ...

最新文章

  1. python代码检测链表中的环并删除环
  2. easyui treegrid 获取新添加行inserted_18行JavaScript代码构建一个倒数计时器
  3. [MSSQL2012]LEAD函数
  4. OpenGL使用Perlin噪声的腐蚀效果
  5. OAF_OAF增删改-新增的实现(案例)
  6. Glass Fish 4.0.1中的Jersey SSE功能
  7. Memory及其controller芯片整体测试方案(上篇)
  8. pictureselector 压缩_Android 多图选择器PictureSelector 使用
  9. Lync Server多SIP域环境和简单URL地址部署
  10. 吴颖二:12.27 什么是现货,如何操作才能盈利
  11. hadoop 集群调度 Azkaban2搭建
  12. python - 安装/解释器/变量
  13. zul使用java_zk中zul页面中组件的id和java类中的变量绑定实现
  14. 5、Android搭建RN开发环境
  15. 坚持早睡早起,我收获了...
  16. 80C51单片机:2.初学点亮发光二极管,流水灯案例
  17. 运行supervisorctl错误提示【FATAL或BACKOFF 】Exited too quickly (process log may have details)问题总结
  18. uniapp uview 1.x设置遮罩层全屏loading
  19. JAVA医护人员排班系统计算机毕业设计Mybatis+系统+数据库+调试部署
  20. 用U盘制作CentOS系统启动盘

热门文章

  1. 安卓获取打气筒服务的三种方式
  2. 浅谈Java分布式系统概念
  3. Android开发实验-- 电话拨号器实验报告
  4. 芯片破壁者(二):半导体“硅”铺就的文明阶梯
  5. 使用Antlr实现简单的DSL - nick hao - 博客园
  6. 委托代理设计模式(协议)
  7. Excel公式:将日期转换为月份年
  8. 通过数据分析提升客流量和销售额
  9. 谁知道哪能下到英英字典的数据库呀?
  10. Keil MDK使用第16篇---call stack +locals 调用堆栈值