使用可执行文件验证文件。 我的蚂蚁脚本目标为:
<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>