テキストファイルの内容を1行ずつ処理する場合は、
foreach( $s in Get-Content $filePath ){ … }
で良いわけです。これはGet-Contentの戻り値がStringのコレクション(1行が1要素になっている)だからです。 が、String変数に全体が入っている場合はそのままforeachできません。なので…
foreach( $s in $text -split "`r`n" ){ … }
改行文字で split をした結果でまわします。("`r`n"ではなく "`n"かも?)
簡単。