トップ 一覧 検索 ヘルプ RSS ログイン

制御構造.ps1の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{category 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
         }
     }
 }