我正在寻找一种抑制"终止批处理作业?(Y/N)"邀请的机制,每当我在从批处理文件启动的程序中按CTRL-C时,我都会收到这样的邀请:
批处理文件:jsshell.bat:
@echo off java -jar build-scripts\contrib\rhino1.7R1.jar
然后通过以下方式在cmd shell上启动它:
> jsshell.bat
这给了我一个可以被CTRL-C退出的shell,它在退出后给了我一个讨厌的消息
在这个网站上,我终于找到了一个有效的解决方案
script.cmd < nul
每次我使用script2.cmd
上面的行在同一文件夹中调用第二个脚本时,不必输入此内容.您可能想要反转名称.对我有用,但到目前为止仅在XP上测试过.
该行为在cmd.exe源代码中实现,如果不修改cmd.exe,则无法关闭该行为.但是,您可以修改cmd.exe以不显示该消息.
是的,有比修补cmd.exe更优雅的方法.把START放在你的命令面前.对于您的示例,该行将如下所示:"START java -jar build-scripts\contrib\rhino1.7R1.jar"
不要忘记考虑避免批处理脚本来解决问题.
Doskey宏可以替换上面引用的单行批处理脚本.(在Autorun脚本中加载它们.)
Cscript.exe在每台现代Windows机器上都可用,并且可以从命令行运行JavaScript和VBScript程序
如果将您喜欢的脚本语言(Perl,Python,Ruby等)的文件扩展名添加到PATHEXT环境变量并将脚本添加到路径中,则可以直接执行它们而无需批处理脚本.
FWIW,管道'N'作为命令的输入工作了我的一些批处理文件(但我实际上想要新的窗口).也许它也适合你.
(echo. N)| cmd /c java -jar build-scripts\contrib\rhino1.7R1.jar