使用错误处理程序从批处理文件中执行

Behat from batch file with error handler

我很难解释我的问题,所以让我们看看代码:

@echo off
cls
set errors=0

bin\behat > test.txt || set /A errors=errors+1

if %errors% EQU 0 goto ok
goto ko

:ok
echo .
echo .OK
goto end

:ko
echo .
echo .KO


:end

当我启动这个批处理文件时,我从未看到 OK/KO 输出。看起来批次在调用 behat 后停止了。但我需要它继续,以便检测错误并管理它们。

这个批次与其他调用一起工作正常,我需要在它们之后被调用。有人有解决这个问题的想法吗?

谢谢

您正在调用 bin\behat.bat,一个批处理文件。

当批处理文件直接调用另一个批处理文件时,执行流程将转移到被调用的文件,而不是return调用方。

要调用另一个批处理文件并允许调用者执行 return,您将需要使用 call 命令

....
call bin\behat > test.txt || set /A errors=errors+1
....