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

时间:2012-11-28 18:43:41

标签: shell ant dos tee

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

SET ERRORLEVEL=
call C:\ant\bin\ant.bat %* |TEE build-logs\build-log-%yyyy%%mm%%dd%.%hh%%nn%%ss%.txt
echo ERRORLEVEL %ERRORLEVEL%

当我使用包含或不包含ERRORLEVEL 4264624的测试任务时,这为我提供了一致<fail/>

换句话说,我没有得到ant.bat的状态,而是其他东西。

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

echo ${PIPESTATUS[0]}

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

1 个答案:

答案 0 :(得分:0)

您可以使用-logger command line option

将ant输出定向到文件
ant -l <logfile>

但这也不会写入stdout,我猜TEE正在为你做。

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