我们的应用程序使用 3 个数据库,一个用于客户端数据,两个用于配置数据。为防止破坏客户端数据,删除客户端数据库的批处理文件首先显示警告消息,然后暂停。
我只是不小心在我的机器上调用了删除客户端数据库(没有丢失;它只是一个副本),当暂停提示出现时,我只是按了+ 。Windows 没有直接终止,而是询问我是否要终止批处理作业。CtrlC
所以我只是再次按下Ctrl+C因为,IMO,Ctrl+C意味着不要继续,因为无论如何我的手指仍然放在这些键上。批处理文件只是继续并删除了数据库(意味着我需要恢复它,使我的电脑无法使用两个小时)。
为什么 WindowsCMD.EXE
认为当我在终止批处理作业提示上按CTRL+C时,这意味着我实际上想要继续(换句话说,为什么+在这种情况下表示Y,而不是N)?CtrlC
在 Linux 中,shell 实际上会执行您所要求的操作,即在不提出毫无意义的问题的情况下终止脚本。没有人会意外地在 DOS 框中按Ctrl+ C(除非他们认为他们在文本编辑器中,而不是在 DOS 框中)。
有两个级别CtrlC:
第三级是 cmd.exe 本身。
这里的问题是,它CtrlC经历了两个级别,实际上,系统会询问您是否要停止批处理文件(级别 2),因此,如果您说Y- 您的批处理文件将立即终止。如果您说N可能发生的情况是批处理文件将从下一个命令继续运行。
归档时间: |
|
查看次数: |
3067 次 |
最近记录: |