现在的位置: 首页 > 操作系统 > 正文

DOS批处理bat倒计时(延时)依据用户交互输入执行不同程序

2016年04月25日 操作系统 ⁄ 共 1025字 暂无评论 ⁄ 阅读 640 次

在DOS执行某些自动化任务时,有时会面临分支选择,需要根据用户的交互对话输入执行不同的程序任务。同时,在无人操作计算机时,我们需要定时执行任务,也就需要倒计时某个时间后让系统自动选择一个分支程序进行执行。现总结两种较易使用的延时、交互式输入执行不同程序的代码。

【CHOICE实现延时交互式分支执行】

CHOICE [/C choices] [/CS] [/N] [/T timeout /D choice] [/M text]

描述:该工具允许用户从选择列表选择一个项目,然后返回所选项目的索引号。

参数详解:

/C choices:指定要创建的选项列表,选项个数由用户自由选择,默认选项是 “YN”。

/CS:指定区分大小写,省略则不区分大小写。

/N:在提示符中隐藏选项列表,省略则不隐藏选项。

/T timeout:指定延时或倒计时多少秒后执行指定程序,跟/D联合使用(指定超时后的默认选项),可接受的延时值从0到9999。若指定0,则表示不延时,省略则不延时。

/D choice:在/T指定秒之后的默认选项,字符必须为/C中指定选项,同时,/T必须出现。

/M text:提示性文本信息,如向用户解释输入指定字符后的结果。

返回值:ERRORLEVEL

若用户输入/C choices(如/C YNC)中的第1个选项(Y)则返回1,第二个选项(N)则返回2,第三个选项(C)则返回3。

示例:

CHOICE /C abc /M "确认请按a,否请按b,取消请按c。"

CHOICE /C ync /CS /T 10 /D y

CHOICE /C ab /N /M "选项1请选择a,选项2请选择b。"

根据用户输入分支执行并延时(若需要定时执行可借助计划任务或写定时bat,在其他文章会专门总结这个问题):

注:各执行代码块内必须有goto end跳至最后,否则批处理命令将从上往下继续执行,造成选择y后,执行、不执行和取消全部执行。

IF+SET实现交互式分支执行

可以使用set /p的交互式输入方式实现分支,然而,这种方式的缺陷是不能有超时默认值。若用户一直没有输入,那么程序会永远等下去,不执行下面的程序。另外,BAT并没有if-elseif语法,所以只能通过嵌套if-else来实现该功能了,所以是有点麻烦的。

再分享一段倒计时休眠计算机代码:

» 声明:本站文章源于个人经验总结或书籍、互联网转载,内容仅用于个人学习,请勿转载,否则后果自负!

给我留言

留言无头像?