如何仅终止内部批处理作业

问题描述:

假设有一些需要在.cmd批处理脚本中运行的.bat文件。这个内部.bat文件在本地主机上有一系列用户交互,并且只能使用ctrl + c结束。如何仅终止内部批处理作业

问题是:是否有某种方法可以在内部脚本终止后恢复外部批处理脚本?或者是ctrl + c的结局都是?

我试过给内部脚本一个不同的出路,只是被告知我不允许更改该文件。我也做了相当数量的研究并没有找到解决方案。原谅我,如果我忽略了一些东西!我想避免出现两个窗口或无关的终止消息。

+0

所以你使用'调用inner.bat'来运行内部脚本?也许'cmd/C inner.bat'或'start“”/ WAIT inner.bat'可以帮助... – aschipfl

+0

@aschipfl谢谢,这很有帮助,cmd/C工作,但现在我得到两个终止请求。想只是终止内部的一个,并让外部的一个顺利地继续 –

+0

@aschipfl与在新窗口中开始的问题相同。不过谢谢,绝对接近。 –

我能想到的来处理这个问题的唯一方法是使用下面的行outer.cmd调用inner.bat - 与接受新的命令提示符窗口中inner.bat执行的缺点:

start "" /WAIT cmd /C "inner.bat" 

(交换startcmd不作为窗口的工作可能会在无意中保持打开状态。)

注意,对于inner.bat,所有控制台输入和输出是通过新的窗口办理,因此任何重定向为outer.cmd(e。例如,outer.cmd > "return.txt")将不包括来自inner.bat的数据。