How to split a string and use it inside a for loop in ant script?

18,610

Solution 1

Easiest way is to use the ant-contrib features

<for list="10.10.10.1;10.10.10.2" delimiter=";" param = "val">
<sequential>
<echo message = "val = @{val}"/>
</sequential>
</for>

Solution 2

If you can't use ant-contrib, an alternative would be to write your own custom Ant task to split the string and execute your command for each token.

Alternatively, since you are executing a Windows-specific command anyway, you could do the split/loop logic in a batch script and exec that, passing the whole properties string.

Share:
18,610
rashok
Author by

rashok

A Passionate Developer

Updated on June 12, 2022

Comments

  • rashok
    rashok almost 2 years

    I am having a list of machine ips in a ant property.

    <property name="machines" ip="10.10.10.1;10.10.10.2;10.10.10.3"/>
    

    I have to copy one file to all the machines(all the machines are windows machines). So I want to split this string and to use it inside a for loop. Inside that forloop i will execute the copy command.

    <exec executable="cmd.exe">
    <pre>
    </pre>
    <arg line="/C COPY /Y sample.txt \\${machine_ip}\Shared_folder\sample.txt"/>
    <pre>
    </pre>
    </exec>
    

    Now how to split and use it inside for loop?

  • ewan.chalmers
    ewan.chalmers almost 13 years
    You provided and accepted an answer which contradicts the stated requirements in your question - can't use ant-contrib.