If statement NAnt:无法解析为布尔值

If statement NAnt:无法解析为布尔值,if-statement,nant,type-conversion,If Statement,Nant,Type Conversion,${deployErrors}是从正则表达式捕获组填充的,具有数值或空字符串。如何检查NAnt if块中的该值是否大于0?如果部署错误包含“1”,则会出现以下错误 “1>0”不是的有效值 属性的“测试”。 无法将“1>0”解析为布尔值。 字符串未被识别为有效的布尔值 我没有试过,但我认为你需要在花括号中表达你的全部表情: 从OP更新: 这起到了作用: <if test="${deployErrors} &gt; 0"> <fail message="MSDep

${deployErrors}
是从正则表达式捕获组填充的,具有数值或空字符串。如何检查NAnt if块中的该值是否大于0?如果部署错误包含“1”,则会出现以下错误

“1>0”不是的有效值 属性的“测试”。 无法将“1>0”解析为布尔值。 字符串未被识别为有效的布尔值


我没有试过,但我认为你需要在花括号中表达你的全部表情:

从OP更新

这起到了作用:

<if test="${deployErrors} &gt; 0">
   <fail message="MSDeploy failed" />
</if>

如果需要对实际数值执行某些操作,则可以执行以下操作:

<if test="${deployErrors != ''}">

类似于Trystan的回答-将字符串解析为布尔值,例如
true
false

<if test="${int::parse('0' + deployErrors) > 10}">


谢谢,这使我走上了正确的道路。我无法比较它们,因为部署错误将转换为数字。但是,将其与“”进行比较是可行的。
<if test="${bool::parse(isEnabled)}">