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

How to terminate only the inner batch job

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

问题是:有什么方法可以让外部批处理脚本在内部脚本终止后继续运行吗?还是ctrl+c就完事了?

我试过为内部脚本提供不同的出路,结果却被告知我不允许更改该文件。我也做了很多研究,但没有找到解决方案。如果我忽略了什么,请原谅我!我想避免弹出两个 windows 或无关的终止消息。

我能想到的处理此问题的唯一方法是使用 outer.cmd 中的以下行来调用 inner.bat——缺点是会收到新的命令提示符 window执行 inner.bat:

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

(交换 startcmd 不起作用,因为新的 window 可能会无意中保持打开状态。)

请注意,对于 inner.bat,所有控制台输入和输出都通过新的 window 处理,因此 outer.cmd 的任何重定向(例如,outer.cmd > "return.txt")都将不包括来自 inner.bat.

的数据