![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 03:36 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理秘技 - 用choice指令作時間延遲 |
| 可打印版本 3,698 / 23 |
| 第1楼 Roy | 发表于 2003-08-16 00:00 |
| 管理员 发帖 1,633 积分 4,869 | |
|
批处理秘技 - 用choice指令作時間延遲 想在批处理中延遲一下時間,可是只想用DOS的基本指令,怎麼辦?
有辦法! 用choice指令就可以!! 例如: 一個十秒的延遲,可以按q退出, choice /c:!q /t:!,10 /n Press q to exit... 究極奧義!!強制延遲十秒!! type nul|choice /c:! /t:!,10 /n Please wait for 10 seconds... |
|
| 第2楼 iceboy | 发表于 2003-08-16 00:00 |
| 银牌会员 发帖 512 积分 1,681 | |
|
如果在延时前加上 ctty nul,延时后加上 ctty con,那么延时中按 CTRL+C 就会死机.. 呵呵
|
|
| 第3楼 qjiang | 发表于 2003-08-16 00:00 |
| 初级用户 发帖 1 积分 106 | |
|
choice /c:!q /t:!,10 /n Press q to exit...其中的c:!q 什么意思那么/t:!,10中 !,又是什么意思了,能不能针对这个讲讲了
|
|
| 第4楼 xiaojun | 发表于 2003-08-16 00:00 |
| 银牌会员 发帖 499 积分 2,202 | |
|
就是说在批处理前面用了这个指令后,在我运行bat文件后的前10秒后悔了,按q就退出它的运行了;是这样吗? 谢谢。
|
|
| 第5楼 hotdog | 发表于 2003-08-16 00:00 |
| 中级用户 发帖 78 积分 411 | |
|
ctty是msdos里的吗
|
|
| 第6楼 xiaojun | 发表于 2003-08-17 00:00 |
| 银牌会员 发帖 499 积分 2,202 | |
以下是引用xiaojun在2003-8-16 21:31:46的发言: 哪位大侠: 是不是这个意思啊? |
|
| 第7楼 winddeity | 发表于 2003-08-21 00:00 |
| 初级用户 发帖 62 积分 311 | |
|
是外部命令吗?我的ms-dos7.1里怎么没有?
|
|
| 第8楼 willsort | 发表于 2003-08-21 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re roy:
这个方法我从外文书中见到过,但是至今仍然解决不了书中指出的一个缺陷,即:按其它键后倒计时停止,不止Roy有什么办法? |
|
| 第9楼 下半辈子 | 发表于 2003-09-16 00:00 |
| 中级用户 发帖 23 积分 204 | |
|
good
|
|
| 第10楼 Roy | 发表于 2004-02-02 00:00 |
| 管理员 发帖 1,633 积分 4,869 | |
以下是引用willsort在2003-8-21 16:21:44的发言:用強制的吧... |
|
| 第11楼 Kinglion | 发表于 2004-02-03 00:00 |
| 铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室 | |
以下是引用hotdog在2003-8-16 22:51:26的发言: CTTY是DOS的内部命令, 改变用于控制计算机的终端设备。 若想用另一台设备进行命令输入,可用CTTY命令实现。 语法 CTTY device 参数 device 指定进行MS-DOS命令输入的备用设备。参数device的有效值为: PRN、LPT1、LPT2、LPT3、CON、AUX、COM1、COM2、COM3和COM4。 相关命令 在指定一命令解释程序时可改变输入设备,有关介绍参见 命令。 CTTY─注解 为CTTY设置串口 在用CTTY命令之前,可先用MODE命令设置串口的波特率、奇偶检验位、位 数和停止位。 不使用MS-DOS的程序与CTTY 很多程序不用MS-DOS管理输入或输出。这些程序直接将输入送到计算机的硬 件。CTTY命令对这些程序不起作用。它只影响那些利用MS-DOS读输入和显示输 出的程序。 用COMMAND设置终端设备 除了CTTY命令,还可利用COMMAND命令的设备参数来指定输入设备。 明白否? |
|
| 第12楼 Kinglion | 发表于 2004-02-03 00:00 |
| 铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室 | |
|
关于CHOICE命令
在批处理程序中,提示用户作一选择。显示一指定的提示符并暂停等待用户从 一组指定的键中作出选择。该命令只能用在批处理程序中。 有关ERRORLEVEL参数的详细介绍,见 和 命令。 语法 CHOICE keys] c,nn] 参数 text 指出要在提示符前显示的正文。仅当在提示符前的正文中包括有开关字符 (/)作为正文内容时,才要用双引号。如果不指定正文,CHOICE仅显 示一个提示符。 开关项 /Ckeys 指定提示中可接受的按键。显示时,这些键出现在内,键之间以逗号分隔, 最后跟一问号。若不指定/C开关,CHOICE采用隐含值YN。冒号(:)是可 选项。 /N 让CHOICE不显示提示符,但提示符前的正文仍然显示。若指定了/N开关, 所指定的按键仍有效。 /S 使CHOICE区别大小写字母。若没指定/S,CHOICE对任何用户指定的 键,大小写不作区分。 /Tc,nn 在对某一指定关键字作默认设置前,让CHOICE等待一指定秒数的时间。 /T转换中的值如下所设: c 指定等待nn秒后作为默认值的那个字符。该字符必须出现在/C开关后的按 键集中。 nn 指定暂停的秒数。可接受0-99之间的值。若指定为0,表示默认设置前不 暂停。 CHOICE─例子 为了让用户在批处理文件中见到有关提示的信息, 可在批处理文件用CHOICE 命令。 如, 在批处理文件中采用了以下语法形式: choice /c:ync 则用户在CHOICE运行时,将看到: ? 在上例语句中,加入正文: choice /c:ync Yes, No, or Continue choice /c:ync Yes, No, or Continue CHOICE启动时,用户看到: Yes, No, or Continue ? 去掉提示符后用户所见的信息 如下例,在批处理程序中用/N转换把提示符去掉: choice /n Yes, No, or Continue? 在CHOICE执行时,用户只见到指定的正文: Yes, No, or Continue? 用了T开关后用户所见的信息 如果在批处理程序中用以下语句: choice /c:ync /t:n,5 当CHOICE执行时,用户会看到: ? 5秒后,用户没按任何键,CHOICE就选择N且返回一个ERRORLEVEL值2。如果5秒 内按下某键,CHOICE返回与用户选择相应对的值。 启动计算机时,若想让用户选择是否要消除C盘的碎片,可在AUTOEXEC.BAT文 件中加入下列语句: choice Defrag drive /ty,5 if errorlevel 2 goto SkipDefrag defrag c: :SkipDefrag 若在5秒内按下N,DEFRAG将不会运行,CHOICE返回ERRORLEVEL值为2。如果5秒 内没按下N,或选择了Y,则对C盘运行DEFRAG。 在批处理程序中使用CHOICE 下面的批处理程序演示如何利用CHOICE选项,让用户选择执行三个程序之一: MS-DOS编辑器、Microsoft Anti-virus或Microsoft Backup。 注意,这里IF ERRORLEVEL语句是按递减序列出的。如果由CHOICE返回 ERRORLEVEL参数的值大于或等于IF命令所指定的参数,MS-DOS将认为IF语句为真。 @echo off cls echo. echo A Microsoft Editor echo B Microsoft Anti-Virus echo C Microsoft Backup echo. choice /c:abc Choose an option if errorlevel 3 goto MSBackup if errorlevel 2 goto Msav if errorlevel 1 goto Edit :Edit edit goto End :Msav msav goto End :Msbackup msbackup goto End :End |
|
| 第13楼 xiaojun | 发表于 2004-02-03 00:00 |
| 银牌会员 发帖 499 积分 2,202 | |
|
请问:批处理为了不显示加了ctty nul 怎么会有错误的提示呢?
这1段:"choice Defrag drive /ty,5 if errorlevel 2 goto SkipDefrag defrag c: :SkipDefrag " /ty不能连写吧? 还是...可以这样写? |
|
| 第14楼 willsort | 发表于 2004-02-03 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re roy:
我的意思是想办法只屏蔽非法按键,而非所有按键对倒计时的影响;即使用DEBUG修改CHOICE的拷贝也再所不惜。 |
|
| 第15楼 willsort | 发表于 2004-02-03 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re xiaojun:
ctty 上文中已有所说明 不使用MS-DOS的程序与CTTY ctty nul即将系统输入输出权交给空设备,可屏蔽MS-DOS管理的一切输出,包括错误消息,你的情况可以具体说明一下吗? choice 默认使用Y,N作为应答选项,以上用法是正确的。 KINGLION的文本取自MSDOS说明文档,有相当条理和权威,可以多从中学习学习。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |