How to split a string and use it inside a for loop

2019-05-04 22:14发布

问题:

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?

回答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>


回答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.