我怎样才能禁止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.cmd
input它。 你可能想要颠倒名字。 适用于我,但只在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