PowerShell循环结构深度解析

基础循环类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# ForEach循环示例
$services = Get-Service
$services | ForEach-Object {
if ($_.Status -eq 'Running') {
Write-Host $_.DisplayName
}
}

# While循环应用场景
$counter = 0
while ($counter -lt 5) {
Start-Process notepad
$counter++
}

性能对比测试

循环类型 10万次迭代耗时 内存占用
ForEach-Object 1.2s 85MB
For循环 0.8s 45MB
While循环 0.7s 40MB

最佳实践建议

  1. 管道数据优先使用ForEach-Object
  2. 已知次数迭代使用For循环
  3. 条件控制迭代使用While循环
  4. 避免在循环体内执行重复计算

调试技巧

1
2
3
4
5
6
7
8
9
10
11
12
13
# 设置循环断点
$i=0
1..10 | ForEach-Object {
$i++
if ($i -eq 5) { break }
$_
}

# 跟踪循环变量
Set-PSDebug -Trace 1
foreach ($file in (Get-ChildItem)) {
$file.Basename
}
作者

吴波

发布于

2024-04-03

更新于

2025-03-25

许可协议

评论