我正在使用管道来调用 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 写入控制台和文件。