powershell 的 for 循环是最灵活的循环结构,适用于精确控制起始、终止和步长的数字遍历;语法含初始化、条件判断、迭代操作三部分,支持正向、反向、跳步及数组索引遍历,并需注意变量作用域与条件布尔值。
powershell 中的 for 循环 是最灵活的循环结构之一,特别适合需要精确控制起始、终止和步长的数字遍历场景。
基本语法与数字范围遍历
PowerShell 的 for 语句语法与 C# 类似,由三部分组成:初始化、条件判断、迭代操作。遍历数字范围时,常用整数变量配合 -le(小于等于)等比较运算符:
-
初始化:定义计数器,如
$i = 1 -
条件判断:决定是否继续循环,如
$i -le 5 -
迭代操作:每次循环后更新计数器,如
$i++或$i += 2
示例:输出 1 到 5 的每个数字
for ($i = 1; $i -le 5; $i++) { Write-Host "当前值: $i" }反向遍历与自定义步长
只需调整初始化值、条件和迭代方式,就能轻松实现倒序或跳步遍历。
- 倒序输出 10 到 1:for ($i = 10; $i -ge 1; $i--) { Write-Host $i }
- 遍历偶数(2、4、6、8、10):for ($i = 2; $i -le 10; $i += 2) { $i }
- 遍历 0 到 100 之间所有能被 7 整除的数:for ($i = 0; $i -le 100; $i++) { if ($i % 7 -eq 0) { $i } }
结合数组索引使用 for
当需要同时访问元素值和其位置(索引)时,for 比 Foreach-Object 更直观。
- 定义数组:$fruits = "Apple", "Banana", "Cherry"
- 用索引遍历并显示序号:for ($i = 0; $i -lt $fruits.Length; $i++) { Write-Host "$i. $($fruits[$i])" }
- 注意:
-lt(小于)比-le更安全,避免索引越界
常见注意事项
使用 for 循环时容易忽略几个关键点:
- 变量作用域:循环内定义的
$i在循环结束后仍存在,建议必要时用Remove-Variable i清理 - 条件表达式必须返回布尔值,写成
$i = 5(赋值)会导致无限循环 - 若需在循环中提前退出,用
break;跳过本次剩余逻辑用continue - 纯数字范围遍历也可用
1..5 | ForEach-Object { ... },但for性能略高且控制更细











