【问题标题】:How to make batch file continue running when the triggered exe crashes触发的exe崩溃时如何使批处理文件继续运行
【发布时间】:2012-02-17 07:28:48
【问题描述】:

我有一个批处理脚本,它会在循环中触发带有命令行输入的 exe(c++ 代码)。

这个代码是这样的:

for /f %%j in (file.txt) do (
"MyExe.exe" "input\MyInput_%%j.txt"
)

"file.txt" 包含输入文件名列表。问题是,有时我的 exe 会因某些输入文件而崩溃。当它崩溃时,脚本会停止运行,需要人工干预。

如何纠正这个问题,以便当 exe 崩溃时,我的脚本可以只显示一条消息并继续执行下一个输入?

我在 Windows XP 上运行脚本,但无操作系统的解决方案会更好。

【问题讨论】:

    标签: exe batch-file


    【解决方案1】:

    尝试在另一个实例中运行它。像这样的:

    for /f %%j in (file.txt) do (
        cmd.exe /C "MyExe.exe" "input\MyInput_%%j.txt"
    )
    

    【讨论】:

    • :但这不会为所有输入启动一个新的 cmd 提示符吗?如果是,那么这将立即启动许多 cmd 提示,并会增加我的电脑的大量负载。
    • 会的。但是cmd提示会关闭,执行结果会返回到主批处理文件。当然,您必须获取返回值并根据该值显示适当的消息。但是 bat 文件应该会继续运行。
    • 还有启动命令,但如果执行崩溃我不确定它是如何工作的。 microsoft.com/resources/documentation/windows/xp/all/proddocs/…
    • 我猜, start 做同样的事情,在新的 cmd 提示符下开始执行。但我不想启动新的 cmd 提示,因为这会降低 exe 的性能。这不能在同一个 cmd 提示符下完成。像捕捉崩溃(我认为这将是 exe 的输出)之类的东西,如果输出被忽略,脚本可以继续。我不确定这是否可以做到。
    • 根据文档,您可以使用开关 /b 来避免打开新的命令提示符
    猜你喜欢
    • 1970-01-01
    • 2021-03-24
    • 2017-05-18
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多