我正在使用管道来调用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输出,并捕获返回代码。
答案 0 :(得分:0)
您可以使用-logger
command line option。
ant -l <logfile>
但这也不会写入stdout,我猜TEE正在为你做。
要获得输出到文件和标准输出,您应该能够使用带有log4j配置的Log4jListener来写入控制台和文件。