PowerShell ガイド:foreach

配列というのがありました。

#サンプル
$l = "a","b","c","d","e";

これをすべて参照してみたい。
そんなときはforeach。

#サンプル続き
foreach($e in $l)
{
  Write-Host ("the value is " + $e);
}

配列のすべての要素を参照して文字列出力してみました。

foreachの書き方は、次のようになります。
foreach([要素変数] in [配列変数])
{
  [処理]
}

要素変数は、配列に含まれる要素が代入される変数です。
配列変数は、配列になっている変数ですね。
処理のところでは、要素変数を参照します。
上述の例で、こんなふうに書いているのは、、
Write-Host ("the value is " + $e);
foreachのブロックで$eという要素変数には配列の要素すべてが順番に入るので、
ひとつひとつ参照しますよということになります。

%と似ていますが使い方がちょっと違うかんじですね。
パイプライン処理でForEeach-Objectに渡すと、渡されたデータは、利用できるようになったら次の処理にわたります。
スピード感があります。
foreachだと、とりあえず全部ループします。
確実に全部まわしてから次の処理にいきたい等あればforeachにするとか、
ForEeach-Objectでもパイプの書き方を検討するとよいです。(どこかでとめるとか)