主题 about_For 简短说明 说明可用于基于条件测试来运行语句的一种语言命令。 详细说明 For 语句(也称为 For 循环)是一种语言结构,可用于创建在某一指定条件的计算结果为 True 时 运行命令块中的命令的循环。 For 循环的典型用法为循环访问值数组,并对这些值的子集执行操作。在大多数情况下,若要循环访问 数组中的所有值,请考虑使用 Foreach 语句。 语法 下面显示了 For 语句的语法。 for (<init>; <condition>; <repeat>) {<statement list>} <init> 占位符表示一条或多条命令(多条命令以逗号分隔),在循环开始前运行。通常使用该语句 的 <init> 部分来创建变量并使用初值对其进行初始化。 然后,此变量将成为 For 语句的下一部分中要测试的条件的基础。 <condition> 占位符表示的 For 语句部分可解析为布尔值 True 或 False。 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} 此语句将连续显示 $i 变量的值,循环每运行一次该变量的值就递增 1,直到您按 Ctrl+C 中断该命 令为止。 可以不在 For 语句的语句列表部分中更改变量的值,而是使用 For 语句的 <repeat> 部分,如下 所示。 $i=1 for (;;$i++){Write-Host $i} 此语句将无限重复,直到您按 Ctrl+C 中断命令。 通过设置条件(使用 For 语句的 <condition> 部分),可以在条件的计算结果为 False 时结束 For 循环。在以下示例中,For 循环在 $i 的值小于或等于 10 时运行。 $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