如何在 ant - exec 中读取和处理标准输出值?



使用可执行文件验证文件。 我的蚂蚁脚本目标为:

<target name="xtest" depends="xyz" description="Additional check">
<exec executable="${xtest.exe}" failonerror="true" resultproperty="retVal">
<arg value="${inputfile.dat}" />
</exec>
<echo>Returned: ${retVal}</echo>
</target>

控制台上的输出:

xtest:
[exec] Errors:          3
[exec] Warnings:        1
[exec] Infos:           0
[exec] Total:           4
[echo] Returned: 0

可执行文件的退出代码(${retVal}(是0,即使它检测到错误。 如果错误超过0,我想终止进程。

如何读取第一个输出行([exec] Errors: 3(并解析上面示例中3的值并终止进程?

完全使用下面的代码。谢谢!

<target name="xtest" depends="xyz" description="Additional check">
<exec executable="${xtest.exe}" failonerror="true" resultproperty="retVal" output="output.txt">
<arg value="${inputfile.dat}" />
</exec>
<echo>Returned: ${retVal}</echo>
<property file="output.txt" prefix="xtestoutput"/>
<fail>
<condition>
<not>
<equals arg1="${xtestoutput.Errors}" arg2="0" />
</not>
</condition>
</fail>
</target>

使用resultproperty可以将可执行文件的输出重定向到文件。 然后,由于输出与属性文件格式匹配,因此您可以读取该输出文件并使用其中的属性,如下所示:

<target name="xtest" depends="xyz" description="Additional check">
<exec executable="${xtest.exe}" failonerror="true" resultproperty="retVal" output="output.txt">
<arg value="${inputfile.dat}" />
</exec>
<echo>Returned: ${retVal}</echo>
<property file="output.txt" prefix="xtestoutput"/>
<fail>
<condition>
<not>
<equals arg1="${xtestoutput.Errors}" arg2="0" />
</not>
</condition>
</fail>
</target>

相关内容

  • 没有找到相关文章

最新更新