トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

制御構造.ps1

[Windows PowerShell]

else if

elseif

foreach

foreach ($el in $collection) { ... }

パイプでコレクションを渡すこともできる。

$collection | foreach { ... }

この場合、foreachブロックの中で各要素は特殊変数$_で参照できる。

ループ制御文

break
PowerShellのbreakは、同種の外側ループも全部脱出してしまう。二重for文、二重foreach文の内側でbreakすると、外側までbreakしてしまう。。。 これを制御したい場合、ラベルが使える。ラベルは、パイプで渡す構文では使用できないので注意。ラベルを使いたい場合、パイプで渡す構文は foreach (...) { ... }の形に書き直す必要がある。
foreach ($i in $collection1) {
    ...
    :InnerForeach foreach ($j in $collection2) {
        ...
        if (...) {
            break InnerForeach
        }
    }
}