views:

469

answers:

3

In my Nant script I would like to compare a property value to a known string. After reading the Nant Expressions documentation I believed I would be able to do a basic '==' comparison to evaluate as a boolean.

However given the script block:

<if test="${target.env} == Dev">
  <echo message="***** You are using DEV"/>
</if>

When executed I recieve the following error:

'Dev == Dev' is not a valid value for attribute 'test' of <if ... />.
    Cannot resolve 'Dev == Dev' to boolean value.
    String was not recognized as a valid Boolean.

This seems as though it should be simple (and probably is). How do I compare two strings, or properties in Nant to evaluate as a boolean?

+6  A: 

See here for example. e.g.

<if test="${target.env}=='Dev'">
    ....
</if>
Preet Sangha
beautiful. i knew it would be easy!
berko
+4  A: 

It also works if you have the entire expression within the curly braces:

<if test="${target.env =='Dev'}">
    ....
</if>
bentsai
This way also works if you're comparing to an empty string (e.g. <if test="${target.env == ''}"> ), where-as the top version doesn't
gerrod
A: 

if you want to compare two variables ${test.var1} and ${test.var2} then

<if test="${test.var1 == test.var2}">
....
</if>
Mathu