中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:批处理中任意键退出该怎么写呢?
作者:
标题: 请教:批处理中任意键退出该怎么写呢? 上一主题 | 下一主题
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『楼 主』:  请教:批处理中任意键退出该怎么写呢?

在setup 98 和安装一些程序时有任意键退出(或是ESC键);可直接退出或出现提示,在批处理中如何实现这个功能呢? 谢谢...![em04][em04]



一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2003-12-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yoyobye
初级用户




积分 105
发帖 1
注册 2003-12-27
状态 离线
『第 2 楼』:  

pause   在屏幕上会出现“按任意键退出”

2003-12-27 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
shoushi
初级用户




积分 119
发帖 4
注册 2003-12-27
状态 离线
『第 3 楼』:  

ctrl+c    or ctrl+break

2003-12-27 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (17145293)  编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 4 楼』:  

对不起,我没说清楚;就好象win98或XP的安装,在进行的过程中,可以ESC退出;在DOS下一些dos程序的安装中,经常出现按任意键继续,而按ESC则退出的提示,这里的任意键继续,ESC退出功能,在批处理怎样办到呢?多谢帮助...



一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2003-12-28 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 5 楼』:  

Re xiaojun:

    pause的作用就是按任意键继续,按Ctrl+C或者Ctrl+Break退出;在批处理中运行,恰好也有你所需要的退出提示。你只需要改一下pause的提示信息,就可以简单实现此功能了。

    echo Press any key  to continue and ctrl+c key to exit
    pause>nul

    或许你心有不甘,为什么不能有更有人性化的退出键设置以及更有人性化的退出提示?再给你一个建议吧:

    choice /c:qc /n /t:c,5 Press 'q' key to exit and 'c' key to continue.
    if errorlevel 2 goto continue
    if errorlevel 1 goto exit

    :exit
    echo.
    choice Are you exit really?
    if errorlevel 2 goto continue
    goto end
   
    当然,还是有很多限制,只能用字母加数字键控制,而无法使用Esc或者空格、回车等键,这就是批处理本身的局限性了,你要用它,就得接受这局限性,或者绕过,或者突破:)



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2003-12-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 6 楼』:  

谢谢楼上的帮助,还是我没说清楚,上面实现的是几秒延迟,并给出2个选择再继续下面的,不过我好象明白了1点,批处理是否不能做到 “一些dos程序的安装中,按任意键继续,ESC则退出” -但 IF 什么都不按,安装便在运行中, 如XP在安装中,左下角的esc退出,当按下ESC后,会出现询问对话框,这大概不是批处理能做到的吧,涉及到中断与编程了吧? 我这个问题与理解对吗? 谢谢您。。。!



一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2003-12-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 7 楼』:  

Re xiaojun:

    看了你的回复,感觉几点需要澄清:

    1,在 dos 下批处理做不到的事情相当少,几乎没有!至少我至今没有遇见肯定不能用批处理来实现的 dos 案例。为什么这么说?因为批处理最强大的优势,就是可以调用一切可以调用的资源,包括各种内外部命令,各种可以找到的程序、工具、软件,甚至在批处理中,可以直接解释执行各种语言的源代码,asm、bas、c诸入此类。将所有这些资源有机的组合起来,所能实现的功能与界面不是任何人可以想象的。所以说,批处理充分体现了“只有想不到,没有做不到”的悍言。

    2,在 dos 下工作时,真正用到批处理的场合不到十分之一,很多原本可以用批处理轻松实现的案例都被使用者所放弃。这又是为什么?因为代价问题,也就是说付出的努力和获得的成果无法取得平衡。这里的代价有很多:兼容性、通用性、健壮性、易用性、适用性,还有两点相当就是批处理程序执行所需要的空间和时间。当然成果也有很多:可以正常执行的程序,可以完美执行的程序,可以到处执行的程序,自己编程的成就感,一个复杂问题被简单解决的满足感等等。不过相信很少有人编写超过10行的批处理程序,我自己也很少编上百行的程序,主要是因为“复杂”。复杂会严重损伤程序的轻便快捷,也同时会损害我所提到的各种代价,而至于这些代价的损失能否换得更高的回报,这就是现实编程中的我们所需要考虑的问题了。所以说,在很多情况下,“非不能也,是不为也”。

    3,就你在楼顶提到的问题而言,确实不是一个太复杂的案例,但是如果一定要通过批处理来实现,那就的确需要动一番脑筋。但是,你希望你编出来的程序,为了“暂停两秒钟”而需要载入一个要两分钟来初始化的程序吗?这就是问题的症结所在。
    但是我们为什么还要用批处理呢?首先当然是因为它的简便性——大多数人都可以不假思索,就编出一个可以实际应用的程序——这的确是很大的诱惑。另外有一点,可能也有不少人能体会到,那就是它的技巧性——当遇到一个问题本以为“无法实现”,却被人告知可以通过三两行的代码就可以轻松“KO”——这种愉悦感相信很多人都乐意体会。虽然别的语言也存在这种技巧性,但他们都没有批处理所来得强烈。仅10来个可以使用的专用关键字,却几乎可以调动所有的资源,这种反差在大多数语言中都不多见。所以,至今,我,还有很多人,仍然热爱着批处理,虽然它正在渐渐老去。

    最后,跟你说一声抱歉吧,最终没有完全解决你的问题。不是想不出来,而是不愿去多想:)看来人的惰性是天生的呀!真诚希望你能找到解决问题的最佳方式,也许就在批处理上。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2003-12-31 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 8 楼』:  

呵呵。。。多谢楼上指点:)



一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2003-12-31 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hunome
银牌会员

颓废青年


积分 2265
发帖 721
注册 2003-5-12
状态 离线
『第 9 楼』:  

听willsort一席话,胜读数月书!

2004-1-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tdj
银牌会员

论坛候鸟


积分 1131
发帖 332
注册 2003-11-27
状态 离线
『第 10 楼』:  

好贴!!!已收藏。

2004-1-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 11 楼』:  

批处理是把我处理得晕头转向了,搞混淆了,现在才清楚自己的问题:~如果“ESC”的键值是AAA,而“ENTER”的键值是BBB;在批处理中,在提示ESC退出和ENTER继续之后;判断用户按下的是AAA还是BBB,来确定是到批处理的结束,还是继续执行,这关键的判断这一句写不出来,呵呵呵 ~ ^_^ 多谢帮助,快到答案了。。。


[此贴子已经被作者于2004-1-2 13:54:43编辑过]






一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2004-1-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: