我正在寻找一种抑制“终止批处理作业?(Y / N)”邀请的机制,只要我在从批处理文件启动的程序中按CTRL-C,我就会收到这样的邀请:
批处理文件:jsshell.bat:
@echo off
java -jar build-scripts\contrib\rhino1.7R1.jar
然后通过以下命令在cmd shell上启动它:
> jsshell.bat
它给了我一个可以被CTRL-C退出的shell,它在退出后给了我讨厌的消息
答案 0 :(得分:25)
在这site,我终于找到了一个有效的解决方案:
script.cmd < nul
每次我在与上面一行相同的文件夹中创建名为script2.cmd
的第二个脚本时,不必输入此内容。您可能想要反转名称。对我有用,但到目前为止仅在XP上测试过。
答案 1 :(得分:16)
该行为在cmd.exe源代码中实现,如果不修改cmd.exe,则无法关闭。但是,您可以 modify cmd.exe to not show the message 。
答案 2 :(得分:8)
是的,还有比修补cmd.exe更优雅的方法。把START放在你的命令面前。对于您的示例,该行将如下所示:“START java -jar build-scripts \ contrib \ rhino1.7R1.jar”
答案 3 :(得分:7)
不要忘记考虑通过避免批处理脚本来解决问题。
答案 4 :(得分:7)
FWIW,管道'N'作为命令的输入使我处理一些批处理文件(但我实际上想要新窗口)。也许它对你也有用。
(echo. N)| cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar
答案 5 :(得分:3)
下面的修改会禁止“终止批处理作业?(Y / N)”和新的控制台窗口:
start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar
答案 6 :(得分:3)
@start cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar
@exit
这只会生成一个窗口
答案 7 :(得分:1)
试试这个。它确实打开了一个新的控制台,但是当它打开时它会锁定另一个控制台。
@echo off
start /WAIT java -jar build-scripts\contrib\rhino1.7R1.jar