about_For
主题
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