NAnt SDK Documentation - v0.92

LoopTask Class

Loops over a set of items.

For a list of all members of this type, see LoopTask Members.

System.Object
   NAnt.Core.Element
      NAnt.Core.Task
         NAnt.Core.TaskContainer
            NAnt.Core.Tasks.LoopTask

[Visual Basic]
<TaskName(Name:="foreach")>
Public Class LoopTask
    Inherits TaskContainer
[C#]
[TaskName(Name="foreach")]
public class LoopTask : TaskContainer

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

Can loop over files in directory, lines in a file, etc.

The property value is stored before the loop is done, and restored when the loop is finished.

The property is returned to its normal value once it is used. Read-only parameters cannot be overridden in this loop.

Example

Loops over the files in c:\.

    
<foreach item="File" in="c:\" property="filename">
    <echo message="${filename}" />
</foreach>
    
  

Loops over all files in the project directory.

    
<foreach item="File" property="filename">
    <in>
        <items>
            <include name="**" />
        </items>
    </in>
    <do>
        <echo message="${filename}" />
    </do>
</foreach>
    
  

Loops over the folders in c:\.

    
<foreach item="Folder" in="c:\" property="foldername">
    <echo message="${foldername}" />
</foreach>
    
  

Loops over all folders in the project directory.

    
<foreach item="Folder" property="foldername">
    <in>
        <items>
            <include name="**" />
        </items>
    </in>
    <do>
        <echo message="${foldername}" />
    </do>
</foreach>
    
  

Loops over a list.

    
<foreach item="String" in="1 2,3" delim=" ," property="count">
    <echo message="${count}" />
</foreach>
    
  

Loops over lines in the file properties.csv, where each line is of the format name,value.

    
<foreach item="Line" in="properties.csv" delim="," property="x,y">
    <echo message="Read pair ${x}=${y}" />
</foreach>
    
  

Requirements

Namespace: NAnt.Core.Tasks

Assembly: NAnt.Core (in NAnt.Core.dll)

See Also

LoopTask Members | NAnt.Core.Tasks Namespace