.bat批处理命令之设置关机倒计时脚本

 1 @ECHO off REM 不显示后续命令行及当前命令行 
 2 
 3 TITLE Shutdown countdown REM 设置脚本标题
 4 
 5 COLOR 0A REM 设置脚本 背景色为黑色 前景色为淡绿色
 6 
 7 :start REM 标签引导 开始 
 8 
 9 CLS REM 清空命令行界面
10 
11 SET /p time_s=Enter the second number: REM 命名一个变量time_s 并使用 /p 打印右边的字符 等待用户输入 输入完毕后将输入结果保存到 变量 time_s
12 
13 ECHO %time_s%|FINDSTR  /BE "[0-9]*" > NUL || GOTO start  REM 通过管道 输出变量 time_s 给 查找字符串命令 判断是否为纯数字 将结果重定向到一个空设备 失败的话执行后面的跳转代码 跳转到 标签引导 开始 
14 
15 IF %time_s% EQU 0 GOTO clstime REM 如果变量 time_s 等于 0 跳转到 标签引导 清除关机倒计时计划
16 
17 IF %time_s% EQU 1 GOTO exitcmd REM 如果变量 time_s 等于 1 跳转到 标签引导 退出命令行
18     
19 IF %time_s% LSS 60 ( REM 如果 变量 time_s 小于 60
20     ECHO You're sure to shut down in a short time REM 输出提示语句 询问用户是否真的需要设置短时间内关机
21     CHOICE REM 等待用确认 Y 或 N 并将用户输入的 Y 或 N 的索引 保存到 错误码值 ERRORLEVEL
22     IF ERRORLEVEL 2 GOTO start REM 如果 错误码值 大于等于 2 即用户输入了 N 则跳转到 标签引导 开始 注意索引是从 1 开始算的
23     IF ERRORLEVEL 1 GOTO settime REM 如果 错误码值 大于等于 1 即用户输入了 Y 则跳转到 
24 ) ELSE IF %time_s% GEQ 60 ( REM 如果 变量 time_s 大于等于 60 则执行小括号内的代码
25     GOTO settime REM 跳转到 标签引导 设置关机倒计时计划
26 )
27 
28 :clstime REM 标签引导 清除关机倒计时计划
29 shutdown.exe -a REM 清除关机倒计时计划
30 GOTO start REM 跳转到 标签引导 开始 重新输入一个倒计时时间
31 
32 :settime REM 标签引导 设置关机倒计时计划
33 shutdown.exe -s -t %time_s% REM 设置关机倒计时计划 -t 参数就是用户输入的整数
34 ECHO success REM 输出成功提示
35 PAUSE REM 等待用户输入任意键
36 
37 :exitcmd REM 标签引导 退出命令行
38 exit REM 退出命令行

程序意图:

用户输入 0 时 清除关机计划

用户输入 1 时 退出脚本

用户输入 2到59 内 任意数字 时 询问用户是否确定设置如此短的关机倒计时 防止误操作 用户输入 Y 则 设置关机计划 输入 N 则 重新输入 数字

用户输入 大于等于60 的数字时 直接设置关机计划

其它说明:

REM 是单行注释的意思

命令行中输入 command/? 可以查看该命令的说明 例如 REM/?

如果程序跑不通,则将所有的注释清除掉,因为它们都是中文

 

posted @ 2015-11-14 00:22  扬空  阅读(3299)  评论(0编辑  收藏  举报