File: foreach.html

package info (click to toggle)
nant 0.85-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 12,704 kB
  • ctags: 6,757
  • sloc: cs: 50,420; makefile: 129; cpp: 70; xml: 40; sh: 1
file content (199 lines) | stat: -rw-r--r-- 8,883 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <!-- Documenting T:NAnt.Core.Tasks.LoopTask-->
  <head>
    <meta http-equiv="Content-Language" content="en-ca" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="../style.css" />
    <title>&lt;foreach&gt; Task</title>
  </head>
  <body>
    <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
      <tr>
        <td class="NavBar-Cell">
          <a href="http://nant.sourceforge.net">
            <b>NAnt</b>
          </a>
          <img alt="-&gt;" src="../images/arrow.gif" />
          <a href="../index.html">Help</a>
          <img alt="-&gt;" src="../images/arrow.gif" />
          <a href="../tasks/index.html">Task Reference</a>
          <img alt="-&gt;" src="../images/arrow.gif" /> &lt;foreach&gt;</td>
        <td class="NavBar-Cell" align="right">
                        v0.85</td>
      </tr>
    </table>
    <h1>&lt;foreach&gt;</h1>
    <p> Loops over a set of items. </p>
    <p> Can loop over files in directory, lines in a file, etc. </p>
    <p> The property value is stored before the loop is done, and restored when the loop is finished. </p>
    <p> The property is returned to its normal value once it is used. Read-only parameters cannot be overridden in this loop. </p>
    <h3>Parameters</h3>
    <div class="table">
      <table>
        <tr>
          <th>Attribute</th>
          <th style="text-align: center;">Type</th>
          <th>Description</th>
          <th style="text-align: center;">Required</th>
        </tr>
        <tr>
          <td valign="top" class="required">item</td>
          <td style="text-align: center;">
            <a href="../enums/NAnt.Core.Tasks.LoopTask.LoopItem.html">LoopItem</a>
          </td>
          <td> The type of iteration that should be done. </td>
          <td style="text-align: center;">True</td>
        </tr>
        <tr>
          <td valign="top" class="required">property</td>
          <td style="text-align: center;">string</td>
          <td> The NAnt property name(s) that should be used for the current iterated item. </td>
          <td style="text-align: center;">True</td>
        </tr>
        <tr>
          <td valign="top">delim</td>
          <td style="text-align: center;">string</td>
          <td> The deliminator char. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">in</td>
          <td style="text-align: center;">string</td>
          <td> The source of the iteration. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">trim</td>
          <td style="text-align: center;">
            <a href="../enums/NAnt.Core.Tasks.LoopTask.LoopTrim.html">LoopTrim</a>
          </td>
          <td> The type of whitespace trimming that should be done. The default is <code>None</code>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">failonerror</td>
          <td style="text-align: center;">bool</td>
          <td> Determines if task failure stops the build, or is just reported. The default is <b>true</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">if</td>
          <td style="text-align: center;">bool</td>
          <td> If <b>true</b> then the task will be executed; otherwise, skipped. The default is <b>true</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">unless</td>
          <td style="text-align: center;">bool</td>
          <td> Opposite of <code>if</code>. If <b>false</b> then the task will be executed; otherwise, skipped. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">verbose</td>
          <td style="text-align: center;">bool</td>
          <td> Determines whether the task should report detailed build log messages. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
      </table>
    </div>
    <h3>Nested Elements:</h3>
    <!--Element-->
    <h4>
      <a id="in">
      </a>
                    &lt;in&gt;
                </h4>
    <div class="nested-element"> Stuff to operate in. Just like the <code>in</code> attribute, but supports more complicated things like a <a href="../types/fileset.html">&lt;fileset&gt;</a> and such. <p class="i2"><b>Note:</b>  Please remove the <code>in</code> attribute if you are using this element. </p><p></p><h3>Nested Elements:</h3><!--Element--><h4><a id="items"></a>
                    &lt;<a href="../types/fileset.html">items</a>&gt;
                </h4><div class="nested-element"><p /></div><h4><a id="items"></a>
                    &lt;/<a href="../types/fileset.html">items</a>&gt;
                </h4><p /></div>
    <h4>
      <a id="in">
      </a>
                    &lt;/in&gt;
                </h4>
    <!--Element-->
    <h4>
      <a id="do">
      </a>
                    &lt;do&gt;
                </h4>
    <div class="nested-element"> Tasks to execute for each matching item. <p> Executes embedded tasks in the order in which they are defined. </p><h3>Parameters</h3><div class="table"><table><tr><th>Attribute</th><th style="text-align: center;">Type</th><th>Description</th><th style="text-align: center;">Required</th></tr><tr><td valign="top">failonerror</td><td style="text-align: center;">bool</td><td> Determines if task failure stops the build, or is just reported. The default is <b>true</b>. </td><td style="text-align: center;">False</td></tr><tr><td valign="top">if</td><td style="text-align: center;">bool</td><td> If <b>true</b> then the task will be executed; otherwise, skipped. The default is <b>true</b>. </td><td style="text-align: center;">False</td></tr><tr><td valign="top">unless</td><td style="text-align: center;">bool</td><td> Opposite of <code>if</code>. If <b>false</b> then the task will be executed; otherwise, skipped. The default is <b>false</b>. </td><td style="text-align: center;">False</td></tr><tr><td valign="top">verbose</td><td style="text-align: center;">bool</td><td> Determines whether the task should report detailed build log messages. The default is <b>false</b>. </td><td style="text-align: center;">False</td></tr></table></div><p /></div>
    <h4>
      <a id="do">
      </a>
                    &lt;/do&gt;
                </h4>
    <h3>Examples</h3>
    <ul class="examples">
      <li>
        <p>Loops over the files in <code>c:\</code>.</p>
        <pre class="code">
&lt;foreach item="File" in="c:\" property="filename"&gt;
    &lt;echo message="${filename}" /&gt;
&lt;/foreach&gt;
    </pre>
      </li>
      <li>
        <p>Loops over all files in the project directory.</p>
        <pre class="code">
&lt;foreach item="File" property="filename"&gt;
    &lt;in&gt;
        &lt;items&gt;
            &lt;include name="**" /&gt;
        &lt;/items&gt;
    &lt;/in&gt;
    &lt;do&gt;
        &lt;echo message="${filename}" /&gt;
    &lt;/do&gt;
&lt;/foreach&gt;
    </pre>
      </li>
      <li>
        <p>Loops over the folders in <code>c:\</code>.</p>
        <pre class="code">
&lt;foreach item="Folder" in="c:\" property="foldername"&gt;
    &lt;echo message="${foldername}" /&gt;
&lt;/foreach&gt;
    </pre>
      </li>
      <li>
        <p>Loops over all folders in the project directory.</p>
        <pre class="code">
&lt;foreach item="Folder" property="foldername"&gt;
    &lt;in&gt;
        &lt;items&gt;
            &lt;include name="**" /&gt;
        &lt;/items&gt;
    &lt;/in&gt;
    &lt;do&gt;
        &lt;echo message="${foldername}" /&gt;
    &lt;/do&gt;
&lt;/foreach&gt;
    </pre>
      </li>
      <li>
        <p>Loops over a list.</p>
        <pre class="code">
&lt;foreach item="String" in="1 2,3" delim=" ," property="count"&gt;
    &lt;echo message="${count}" /&gt;
&lt;/foreach&gt;
    </pre>
      </li>
      <li>
        <p> Loops over lines in the file <code>properties.csv</code>, where each line is of the format name,value. </p>
        <pre class="code">
&lt;foreach item="Line" in="properties.csv" delim="," property="x,y"&gt;
    &lt;echo message="Read pair ${x}=${y}" /&gt;
&lt;/foreach&gt;
    </pre>
      </li>
    </ul>
    <h3>Requirements</h3>
    <div style="margin-left: 20px;">
      <b>Assembly:</b> NAnt.Core (0.85.2478.0)
            </div>
  </body>
</html>