空值

$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:\>