2009-08-05 92 views
49

我正在寻找一种抑制“终止批处理作业?(是/否)”邀请的机制,只要我按CTRL-C如何禁止cmd.exe中的“终止批处理作业”

批处理文件:jsshell.bat:程序从一个批处理文件启动

> jsshell.bat 

这使我可以退出一个shell:

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

,然后通过启动它CMD壳通过CTRL-C退出后给我的令人讨厌的消息

+0

FWIW,这个附加应用程序通过一个设置解决了问题,并带来更多的好东西。 https://code.google.com/p/clink/自从关闭后,无法添加为答案。 – Macke 2013-04-03 06:47:46

+0

参见http://superuser.com/questions/35698/how-to-supress-terminate-batch-job-y-n-confirmation – 2013-09-10 09:43:33

回答

7

不要忘了考虑,避免批处理脚本解决该问题。

  • Doskey macros可以代替上面引用的单行批处理脚本。 (加载它们在你的Autorun脚本。)
  • Cscript.exe提供各种现代化的Windows计算机上,可以通过命令行
  • 运行JavaScript和VBScript程序如果您添加的文件扩展名您最喜爱的脚本语言(Perl,Python和Ruby等)添加到您的PATHEXT环境变量中,并将脚本添加到您的路径中,您可以直接执行它们而无需批处理脚本。
+1

所有的好点,但我的目标是在SVN检出东西后开箱即用,所以添加东西到PATHEXT或自动运行不起作用 – cellcortex 2009-11-18 22:30:27

+0

你的用户必须安装Java,对吗?这仅仅是一个步骤 – 2009-11-23 17:14:23

+1

@cellcortex:还要注意VBScript已经在Pathext中 – Joey 2011-03-16 21:02:00

14

This site给出了如何修补cmd.exe不显示消息的说明。

+17

圣洁的废话,这是一些硬核心修复。当然,必须有一个不那么突兀的方式? – 2009-08-05 17:29:49

+3

你最后一次获得NOOP的时间是? 好的,如果您希望其他人使用,不是一个很好的解决方案。 – WireGuy 2009-08-05 18:13:08

+19

谢谢,但补丁cmd.exe是我宁愿不喜欢做的事情。 – cellcortex 2009-08-16 14:23:11

8

是的,比修补cmd.exe更优雅。只需将START放在命令前面即可。为了您的例子中,行就应该是这样的:“开始Java的罐子建设的脚本\的contrib \ rhino1.7R1.jar”

+6

这似乎打开一个新的控制台窗口,并在其中运行。 – cellcortex 2009-10-12 21:53:12

+1

使用start/B不会得到一个新窗口 – 2014-04-14 08:41:17

+1

@JonnyLeeds你不会得到一个新的窗口,但随后会出现另一个问题 - 当你在原来的shell窗口中键入'exit'时,它不会关。 – egor83 2014-06-25 05:49:02

2

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

start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar 
+3

在我的机器上打开一个新的控制台窗口。 (我在win7上,但我怀疑这是否有所作为。) – 2009-10-16 21:28:31

+0

为我打开2个新的控制台窗口 – cellcortex 2009-10-20 21:12:12

+0

嗯,很奇怪。这个例子对我来说就是在托管模式浏览器中启动GWT: start cmd/c%JAVA_HOME%/ bin/java%JAVA_OPTS%-classpath%CLASSPATH%com.google.gwt.dev.GWTShell%GWT_OPTS% 当你双击BAT文件时,它会启动一个控制台窗口,但是 - 正如我上面提到的 - 禁止Terminate批处理作业? (Y/N)“,并禁止启动一个额外的控制台窗口。也许这个”rhino“是一个控制台应用程序,因此必须在控制台上运行? – Elmo 2009-10-21 09:01:05

7

FWIW,管道'N'作为一个命令的输入工作我的一些批处理文件(但我真的想要新的窗口)。也许它也适用于你。

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

请记住这可能会导致问题与拉与英语不同的语言。不错的解决方法,但。 – 2015-12-12 17:45:14

+0

这个作品至少在Windows 7上工作得很好 – 2016-09-17 16:05:54

+0

WOW这个工程在我的Win10机器上运行,语言环境为FR,智能且用户友好,因为它被记忆在历史队列中作为原始命令......与修补cmd.exe相比。 – dmidz 2017-02-07 22:37:01

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

这将使只有一个窗口

+0

它将打开一个新窗口并关闭当前窗口。稍有不同,特别是因为新窗口没有任何尺寸设置。另外,你可能意思是'/ k',因为'/ c'会在程序退出时关闭第二个窗口,最后没有窗口。 – jpmc26 2013-07-20 00:07:00

+0

如何用此命令添加WAIT? “启动/等待CMD/K”不起作用 – 2016-10-19 10:39:13

1

试试这个。它确实打开了一个新的控制台,但它在打开时锁定了另一个控制台。

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

在这个site,我终于找到了一个有效的解决方案:

script.cmd < nul 

为了不因为我已在上面的线相同的文件夹叫script2.cmd第二个脚本,每次输入了这一点。你可能想要改变名字。适用于我,但只在XP上进行测试。