如何仅终止内部批处理作业
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"
(交换 start
和 cmd
不起作用,因为新的 window 可能会无意中保持打开状态。)
请注意,对于 inner.bat
,所有控制台输入和输出都通过新的 window 处理,因此 outer.cmd
的任何重定向(例如,outer.cmd > "return.txt"
)都将不包括来自 inner.bat
.
的数据
假设在 .cmd 批处理脚本中 运行 需要一些 .bat 文件。这个内部 .bat 文件在本地主机上有一系列用户交互,只能使用 ctrl+c 结束。
问题是:有什么方法可以让外部批处理脚本在内部脚本终止后继续运行吗?还是ctrl+c就完事了?
我试过为内部脚本提供不同的出路,结果却被告知我不允许更改该文件。我也做了很多研究,但没有找到解决方案。如果我忽略了什么,请原谅我!我想避免弹出两个 windows 或无关的终止消息。
我能想到的处理此问题的唯一方法是使用 outer.cmd
中的以下行来调用 inner.bat
——缺点是会收到新的命令提示符 window执行 inner.bat
:
start "" /WAIT cmd /C "inner.bat"
(交换 start
和 cmd
不起作用,因为新的 window 可能会无意中保持打开状态。)
请注意,对于 inner.bat
,所有控制台输入和输出都通过新的 window 处理,因此 outer.cmd
的任何重定向(例如,outer.cmd > "return.txt"
)都将不包括来自 inner.bat
.