Summary
Loops over a set of items.
- Assembly
- NAnt
.Core .dll - Namespace
- NAnt
.Core .Tasks - Interfaces
- Base Types
-
- Object
- Element
- Task
- TaskContainer
graph BT
Type-->Base0["TaskContainer"]
click Base0 "/api/NAnt.Core/TaskContainer"
Base0-->Base1["Task"]
click Base1 "/api/NAnt.Core/Task"
Base1-->Base2["Element"]
click Base2 "/api/NAnt.Core/Element"
Base2-->Base3["Object"]
Type-.->Interface0["IConditional"]
click Interface0 "/api/NAnt.Core/IConditional"
Type["LoopTask"]
class Type type-node
Syntax
[TaskName("foreach")]
public class LoopTask : TaskContainer, IConditional
Examples
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>
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.
Attributes
| Type | Description |
|---|---|
| TaskNameAttribute | Indicates that class should be treated as a task. |
Properties
| Name | Value | Summary |
|---|---|---|
| CustomXmlProcessing | bool |
Gets a value indicating whether the element is performing additional
processing using the
System.Xml.XmlNode that was use to
initialize the element.
Inherited from TaskContainer
|
| Delimiter | string |
The deliminator char.
|
| FailOnError | bool |
Determines if task failure stops the build, or is just reported.
The default is
true.
Inherited from Task
|
| IfDefined | bool |
If
true then the task will be executed; otherwise,
skipped. The default is true.
Inherited from Task
|
| InElement | InElement |
Stuff to operate in. Just like the
NAnt.Core.Tasks.LoopTask.Source
attribute, but supports more complicated things like a NAnt.Core.Types.FileSet
and such.
Please remove the
NAnt.Core.Tasks.LoopTask.Source attribute if you
are using this element.
|
| ItemType | LoopTask |
The type of iteration that should be done.
|
| Location | Location |
Gets or sets the location in the build file where the element is
defined.
Inherited from Element
|
| LogPrefix | string |
The prefix used when sending messages to the log.
Inherited from Task
|
| Name | string |
The name of the task.
Inherited from Task
|
| NamespaceManager | XmlNamespaceManager |
Gets or sets the
System.Xml.XmlNamespaceManager.
Inherited from Element
|
| Parent | Object |
Gets or sets the parent of the element.
Inherited from Element
|
| Project | Project |
Gets or sets the
NAnt.Core.Element.Project to which this element belongs.
Inherited from Element
|
| Properties | PropertyDictionary |
Gets the properties local to this
NAnt.Core.Element and the
NAnt.Core.Element.Project.
Inherited from Element
|
| Property | string |
The NAnt property name(s) that should be used for the current
iterated item.
|
| Source | string |
The source of the iteration.
|
| StuffToDo | TaskContainer |
Tasks to execute for each matching item.
|
| Threshold | Level |
Gets or sets the log threshold for this
NAnt.Core.Task. By
default the threshold of a task is NAnt.Core.Level.Debug,
causing no messages to be filtered in the task itself.
Inherited from Task
|
| TrimType | LoopTask |
The type of whitespace trimming that should be done. The default
is
NAnt.Core.Tasks.LoopTask.LoopTrim.None.
|
| UnlessDefined | bool |
Opposite of
NAnt.Core.Task.IfDefined. If false
then the task will be executed; otherwise, skipped. The default is
false.
Inherited from Task
|
| Verbose | bool |
Determines whether the task should report detailed build log messages.
The default is
false.
Inherited from Task
|
| XmlNode | XmlNode |
Gets or sets the XML node of the element.
Inherited from Element
|
Methods
| Name | Value | Summary |
|---|---|---|
| Add |
void |
Inherited from TaskContainer
|
| CopyTo |
void |
Copies all instance data of the
NAnt.Core.Element to a given
NAnt.Core.Element.
Inherited from Element
|
| Create |
DataTypeBase |
Inherited from TaskContainer
|
| CreateChildTask |
Task |
Inherited from TaskContainer
|
| DoWork |
void | |
| Execute |
void |
Executes the task unless it is skipped.
Inherited from Task
|
| ExecuteChildTasks |
void |
Creates and executes the embedded (child XML nodes) elements.
|
| ExecuteTask |
void |
Executes the task.
|
| Get |
XmlNode |
Locates the XML node for the specified attribute in either the
configuration section of the extension assembly or the.project.
Inherited from Task
|
| Get |
XmlNode |
Inherited from Element
|
| GetLocation |
Location |
Retrieves the location in the build file where the element is
defined.
Inherited from Element
|
| Initialize |
void |
Automatically exclude build elements that are defined on the task
from things that get executed, as they are evaluated normally during
XML task initialization.
Inherited from TaskContainer
|
| Initialize |
void |
Performs default initialization.
Inherited from Element
|
| Initialize |
Element |
Initializes the build element.
Inherited from Element
static
|
| InitializeElement |
void |
Derived classes should override to this method to provide extra
initialization and validation not covered by the base class.
Inherited from Element
|
| InitializeTask |
void |
Initializes the task.
Inherited from Task
|
| Initialize |
void |
Initializes the configuration of the task using configuration
settings retrieved from the NAnt configuration file.
Inherited from Task
|
| InitializeXml |
void |
Initializes all build attributes and child elements.
Inherited from Element
|
| IsLogEnabledFor |
bool |
Determines whether build output is enabled for the given
NAnt.Core.Level.
Inherited from Task
|
| IsPrivateXmlElement |
bool |
Inherited from TaskContainer
|
| Log |
void |
Logs a message with the given priority.
Inherited from Task
|
| Log |
void |
Logs a formatted message with the given priority.
Inherited from Task
|
