楼 主
能不能在批处理执行过程中按Ctrl + C直接退出,而不出现“
发表于 2004-12-24 00:00 · 中国 安徽 宿州 电信
银牌会员
★★★
积分 1,339 发帖 595 注册 2004-05-26 00:00 22年会员 UID 25306 性别 男 来自 安徽 宿州
状态 离线
能不能在批处理执行过程中按Ctrl + C(或Ctrl + Break)直接退出,而不出现“ Terminate batch job (Y/N)?”的字样?能不能用if errorlevel n goto ...。如果能这样,那就太方便了。
第 2 楼
发表于 2004-12-25 00:00 · 中国 山东 济宁 兖州区 联通
钻石会员
★★★★★
积分 10,046 发帖 3,039 注册 2002-11-11 00:00 23年会员 UID 223 性别 男
状态 离线
第 3 楼
发表于 2004-12-25 00:00 · 中国 安徽 宿州 电信
银牌会员
★★★
积分 1,339 发帖 595 注册 2004-05-26 00:00 22年会员 UID 25306 性别 男 来自 安徽 宿州
状态 离线
第 4 楼
发表于 2004-12-27 00:00 · 中国 山西 太原 中移铁通
元老会员
★★★★
Batchinger
积分 4,432 发帖 1,512 注册 2002-10-18 00:00 23年会员 UID 19 性别 男
状态 离线
Ctrl+C的泛化讨论Re chujiafu:
若要硬要直解这一问题,需要使用非常复杂的机理,比如修改DOS的中断处理或者利用COMMAND外壳应答和抽取错误提示,对于你的这一个问题,可能引起更多的问题,自然是得不偿失。
二楼michael 的choice是一个中断批处理的有限的替代方案,可以在需要确定用户是否终止程序执行的代码处,插入choice语句,以询问用户的方式来决定是否终止程序,当然也可以不用询问而直接终止,这只需要插入一句跳转到程序最后的goto语句即可。
但是choice只能在特定时刻询问用户,而不会在程序执行的任意时刻等待用户的终止选择。这两天我一直在寻找一种可以完全替代Ctrl+C终止批处理的方案,可是最终没有得到满意的答案。于是,我只好回头审视我为什么会得到这样的结果。我找不到Ctrl+C的完全替代者,可是我为什么要寻找Ctrl+C的完全替代者呢?因为使用Ctrl+C终止批处理很难禁止Terminate的终止提示。可是我又为什么要禁止Ctrl+C的终止提示呢?因为有用户提出了这样的要求。
于是,很自然的,问题的解决回到了提问者自己手中。chujiafu兄,你为什么想要禁止Ctrl+C的终止提示呢?先不要急于回答,你可以认真回想一下提出这个问题之前的初衷,然后再考虑是不是要满足前一个问题,就一定要先解决这个问题。
这是一个例子,当我们遇到一个难以解决的问题时,先考虑是不是一定要解决这个问题,是不是可以绕过这个障碍,通过另外的途径达到同样的目的地。
※ Batchinger 致 Bat Fans:请访问
批处理编程的异类 ,欢迎交流与共享批处理编程心得!
第 5 楼
发表于 2004-12-28 00:00 · 中国 安徽 宿州 电信
银牌会员
★★★
积分 1,339 发帖 595 注册 2004-05-26 00:00 22年会员 UID 25306 性别 男 来自 安徽 宿州
状态 离线
To willsort 兄: 我提出这个问题的情境是:在一个批处理的开头显示:“Press any key to continue,or Ctrl+C to Cancel.“给用户一个选择的机会。如果用户按任一键,则批处理继续执行下去;如果用户按了Ctrl+C则中止批处理的执行,退出批处理程序。这是我提出这个问题的初衷。
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正