使用可执行文件验证文件。 我的蚂蚁脚本目标为:
<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
并终止该过程?
答案 0 :(得分:0)
使用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>
答案 1 :(得分:0)
与下面的代码完全兼容。谢谢!
<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>