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/?
如果程序跑不通,则将所有的注释清除掉,因为它们都是中文