使用 DOS,Brian Friesen 的 Tee32 3.2,捕获返回代码



我正在使用管道来调用 apache ant

SET ERRORLEVEL=
call C:antbinant.bat %* |TEE build-logsbuild-log-%yyyy%%mm%%dd%.%hh%%nn%%ss%.txt
echo ERRORLEVEL %ERRORLEVEL%

这为我使用带有或不带有<fail/>的测试任务提供了一致的ERRORLEVEL 4264624

换句话说,我得到的不是蚂蚁.bat的地位,而是别的东西。

这是DOS而不是BASH,所以我无法访问

echo ${PIPESTATUS[0]}

有没有直接的解决方案,如果不是,我的目标是记录 ant 输出,如图所示,并捕获返回代码。

您可以使用

-logger命令行选项将 ant 输出定向到文件。

ant -l <logfile>

但这也不会写到标准输出,我想TEE正在为你做。

要获取文件和标准输出的输出,您应该能够使用具有 log4j 配置的 Log4jListener 写入控制台和文件。

最新更新