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或者空格、回车等键,这就是批处理本身的局限性了,你要用它,就得接受这局限性,或者绕过,或者突破:)作者: xiaojun 时间: 2003-12-30 00:00 谢谢楼上的帮助,还是我没说清楚,上面实现的是几秒延迟,并给出2个选择再继续下面的,不过我好象明白了1点,批处理是否不能做到 “一些dos程序的安装中,按任意键继续,ESC则退出” -但 IF 什么都不按,安装便在运行中, 如XP在安装中,左下角的esc退出,当按下ESC后,会出现询问对话框,这大概不是批处理能做到的吧,涉及到中断与编程了吧? 我这个问题与理解对吗? 谢谢您。。。!作者: willsort 时间: 2003-12-31 00:00 Re xiaojun:
看了你的回复,感觉几点需要澄清:
1,在 dos 下批处理做不到的事情相当少,几乎没有!至少我至今没有遇见肯定不能用批处理来实现的 dos 案例。为什么这么说?因为批处理最强大的优势,就是可以调用一切可以调用的资源,包括各种内外部命令,各种可以找到的程序、工具、软件,甚至在批处理中,可以直接解释执行各种语言的源代码,asm、bas、c诸入此类。将所有这些资源有机的组合起来,所能实现的功能与界面不是任何人可以想象的。所以说,批处理充分体现了“只有想不到,没有做不到”的悍言。
2,在 dos 下工作时,真正用到批处理的场合不到十分之一,很多原本可以用批处理轻松实现的案例都被使用者所放弃。这又是为什么?因为代价问题,也就是说付出的努力和获得的成果无法取得平衡。这里的代价有很多:兼容性、通用性、健壮性、易用性、适用性,还有两点相当就是批处理程序执行所需要的空间和时间。当然成果也有很多:可以正常执行的程序,可以完美执行的程序,可以到处执行的程序,自己编程的成就感,一个复杂问题被简单解决的满足感等等。不过相信很少有人编写超过10行的批处理程序,我自己也很少编上百行的程序,主要是因为“复杂”。复杂会严重损伤程序的轻便快捷,也同时会损害我所提到的各种代价,而至于这些代价的损失能否换得更高的回报,这就是现实编程中的我们所需要考虑的问题了。所以说,在很多情况下,“非不能也,是不为也”。