about_For
应用到: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0
主题
about_For
简短说明
介绍可用于根据条件测试运行语句的语言命令。
详细说明
For 语句(也称为 For 循环)是一种可用于创建循环的语言结构,可在指定条件计算结果为 true 时运行命令块中的命令。
For 循环的典型用法是迭代遍历一组值并对这些值的子集进行运算。在大多数情况下,如果想要迭代遍历数组中的所有值,请考虑使用 Foreach 语句。
语法
下面显示了 For 语句的语法。
for (<init>; <condition>; <repeat>)
{<statement list>}
<init> 占位符表示循环开始之前运行的一个或多个命令(以逗号分隔)。通常将语句的 <init> 部分用于创建变量并使用起始值初始化该变量。请注意,逗号语法不适用于赋值语句,例如以下示例:
$ofs=",";$rs = "rs"; $cs = "cs"; for ($r = $rs, $c = $cs; $true;)
{ "r is '$r' and c is '$c'"; break }
然后,此变量将基于要在 For 语句的下一部分中测试的条件。
<condition> 占位符表示解析为 true 或 false 布尔值的 For 语句部分。Windows PowerShell® 将在每次运行 For 循环时计算条件。如果该语句为 true,则运行命令块中的命令,并再次计算语句。如果条件仍为 true,则再次运行语句列表中的命令。重复该循环,直到条件变为 false。
<repeat> 占位符表示每次重复循环时运行的一个或多个命令(以逗号分隔)。通常,这用于修改要在语句的 <condition> 部分内测试的变量。
<statement list> 占位符表示在每次进入或重复循环时运行的一个命令或一组命令。语句列表的内容使用大括号括起来。
示例
至少,For 语句需要括号将语句的 <init>、<condition> 和 <repeat> 部分括起来,以及将语句的 <statement list> 部分中的命令用大括号括起来。
请注意,接下来的示例特意介绍了 For 语句之外的代码。在后面的示例中,代码将集成到 For 语句中。
例如,下面的 For 语句不断显示 $i 变量的值,直到你通过按 CTRL+C 手动中断该命令。
$i = 1
for (;;){Write-Host $i}
你可以将其他命令添加到语句列表,以便 $i 的值在每次运行循环时递增 1,如以下示例所示。
for (;;){$i++; Write-Host $i}
除非你通过按 CTRL+C 中断该命令,否则此语句将不断显示在每次运行该循环时递增 1 的 $i 变量的值。
你可以改为使用 For 语句的 <repeat> 部分,而不是更改 For 语句的语句列表部分中变量的值,如下所示。
$i=1
for (;;$i++){Write-Host $i}
此语句仍将无限重复,直到通过按 CTRL+C 中断该命令。
通过设置条件(使用 For 语句的 <condition> 部分),可以在条件的计算结果为 false 时结束 For 循环。在下面的示例中,当 $i 的值小于或等于 10 时,将运行 For 循环。
$i=1
for(;$i -le 10;$i++){Write-Host $i}
你可以在 For 循环内使用 For 语句的 <init> 部分执行此任务,而不是在 For 语句外创建和初始化变量。
for($i=1; $i -le 10; $i++){Write-Host $i}
可以使用回车代替分号来分隔 For 语句的 <init>、<condition> 和 <repeat> 部分。下面的示例以此替代形式介绍 For 语句的语法。
for (<init>
<condition>
<repeat>){
<statement list>
}
此种替代形式的 For 语句适用于 Windows PowerShell 脚本文件以及 Windows PowerShell 命令提示符。但是,当你在命令提示符下输入交互式命令时,可以更轻松地通过分号使用 For 语句的语法。
For 循环比 Foreach 循环更灵活,因为它允许你通过使用模式来递增数组或集合中的值。在下面的示例中,$i 变量在 For 语句的 <repeat> 部分中递增 2。
for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}
另请参阅
about_Comparison_Operators
about_Foreach