我怎样才能禁止cmd.exe中的“终止批处理作业”

我正在寻找一种抑制从batch file启动的程序中每次按下CTRL-C时都会得到的“终止批处理作业(Y / N)”邀请的机制:

batch file:jsshell.bat:

@echo off java -jar build-scripts\contrib\rhino1.7R1.jar 

然后通过cmd shell启动它:

 > jsshell.bat 

这给了我一个可以通过CTRL-C退出的shell,在退出后给我留下了一个讨厌的消息

不要忘了考虑通过避免批处理脚本来解决这个问题。

  • Doskeymacros可以代替上面引用的单行批处理脚本。 (将它们加载到自动运行脚本中。)
  • Cscript.exe在每个现代Windows机器上都可用,并且可以从命令行运行JavaScript和VBScript程序
  • 如果您将您最喜爱的脚本语言(Perl,Python,Ruby等)的文件扩展名添加到PATHEXT环境variables中,并将脚本添加到path中,则可以不使用批处理脚本直接执行它们。

在这个网站 ,我终于find了一个有效的解决scheme:

 script.cmd < nul 

每次我在上面一行的同一个文件夹中创build一个名为script2.cmd的第二个脚本时, script2.cmdinput它。 你可能想要颠倒名字。 适用于我,但只在XP上testing。

本网站给出如何修补cmd.exe不显示消息的说明。

是的,比修补cmd.exe更优雅。 只需将START放在命令前面即可。 对于你的例子,这行代码如下所示:“START java -jar build-scripts \ contrib \ rhino1.7R1.jar”

FWIW,pipe道'N'作为一个命令的input工作我的一些batch file(但我真的想要新的窗口)。 也许它也适用于你。

 (echo. N)| cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 

下面的修改禁止“终止批处理作业?(Y / N)” 新的控制台窗口:

 start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 
 @start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar @exit 

这只会使一个窗口

尝试这个。 它打开了一个新的控制台,但它打开时locking另一个控制台。

 @echo off start /WAIT java -jar build-scripts\contrib\rhino1.7R1.jar