空值

$null 用于表示缺少或未定义的值。
$null 可以用作数组中空值的空占位符:

PS C:\> $array = 1, "string", $null
PS C:\> $array.Count
3

当我们使用相同的数组作为 ForEach-Object 的源时,它将处理所有三个项目(包括$ null):

PS C:\> $array | ForEach-Object {"Hello"}
Hello
Hello
Hello

小心! 这意味着 ForEach-Object 自行处理 $null

PS C:\> $null | ForEach-Object {"Hello"} # THIS WILL DO ONE ITERATION !!!
Hello

如果将它与经典的 foreach 循环比较,这是非常意外的结果:

PS C:\> foreach($i in $null) {"Hello"} # THIS WILL DO NO ITERATION
PS C:\>