为什么执行批处理文件后cmd不会退出?
我试过了:
"C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -Xmx1024M -Xms1024M -jar Jilko.jar
Run Code Online (Sandbox Code Playgroud)
和
@echo off
"C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -Xmx1024M -Xms1024M -jar Jilko.jar
exit
Run Code Online (Sandbox Code Playgroud) 我要启动的应用程序是 MongoDB。如果我正常启动它,它看起来像这样:
我不喜欢换行符的数量,而且我有很多屏幕空间,所以我想利用所说的空间来摆脱换行符。
我可以用 改变控制台窗口的大小MODE
,所以我写了一个这样的批处理文件:
@ECHO OFF
MODE con:cols=140 lines=70
%~dp0mongodb\bin\mongod --dbpath %~dp0data --rest
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。当我启动这个批处理文件时,我会根据需要得到一个更大的窗口。
但是当我现在按Ctrl+C退出 MongoDB 时,我收到了烦人的提示:
Terminate batch job (Y/N)?
Run Code Online (Sandbox Code Playgroud)
这是没用的,因为我刚刚退出的命令无论如何都是批处理作业中的最后一个命令,无论我回答什么,结果都是一样的。
那么,当我点击Ctrl+时,如何在没有提示的情况下为应用程序获得更大的控制台窗口C?
我们的应用程序使用 3 个数据库,一个用于客户端数据,两个用于配置数据。为防止破坏客户端数据,删除客户端数据库的批处理文件首先显示警告消息,然后暂停。
我只是不小心在我的机器上调用了删除客户端数据库(没有丢失;它只是一个副本),当暂停提示出现时,我只是按了+ 。Windows 没有直接终止,而是询问我是否要终止批处理作业。CtrlC
所以我只是再次按下Ctrl+C因为,IMO,Ctrl+C意味着不要继续,因为无论如何我的手指仍然放在这些键上。批处理文件只是继续并删除了数据库(意味着我需要恢复它,使我的电脑无法使用两个小时)。
为什么 WindowsCMD.EXE
认为当我在终止批处理作业提示上按CTRL+C时,这意味着我实际上想要继续(换句话说,为什么+在这种情况下表示Y,而不是N)?CtrlC
在 Linux 中,shell 实际上会执行您所要求的操作,即在不提出毫无意义的问题的情况下终止脚本。没有人会意外地在 DOS 框中按Ctrl+ C(除非他们认为他们在文本编辑器中,而不是在 DOS 框中)。