ja-JP/about_Switch.help.txt
|
TOPIC about_Switch 簡単な説明 複数の if 文の代わりに、条件と対応する処理をまとめて記述できる switch 文を説明します。 詳細な説明 値が複数の条件のいずれかに一致するかどうかを調べたい場合、if 文を いくつも並べる代わりに switch 文を使えます。switch 文は、調べる値を 各条件と順番に照合し、一致した条件のコードブロックを実行します。 基本的な構文は次のとおりです。 switch (<テスト式>) { <一致させる値1> { <実行するコード> } <一致させる値2> { <実行するコード> } default { <どれにも一致しないときのコード> } } テスト式に配列やコレクションを指定すると、各要素が 1 つずつ照合され ます。一致した要素ごとに、対応するコードブロックが実行されます。 現在処理中の値は自動変数 $_ で参照できます。 既定では、文字列の比較は大文字小文字を区別しない完全一致です。値は 比較の前にすべて文字列へ変換されます。 オプションのパラメーターで照合方法を変更できます。 -Wildcard ワイルドカード (*, ?) による一致を行います。 -Regex 正規表現による一致を行います。一致内容は $Matches で参照できます。 -Exact ワイルドカードや正規表現を使わず完全一致にします。 -CaseSensitive 大文字小文字を区別して比較します。 -File <パス> 指定ファイルを 1 行ずつ読み込み、各行を照合します。 複数のパラメーターを組み合わせられます。 switch -Regex -CaseSensitive (<テスト式>) { ... } 例 switch (3) { 1 { "one" } 2 { "two" } 3 { "three" } } # three # default 句と複数値の照合 switch (4, 2) { 1 { "one" } 2 { "two" } default { "その他: $_" } } # two # その他: 4 # -Wildcard を使う例 switch -Wildcard ("PowerShell") { "Power*" { "Power で始まります" } "*Shell" { "Shell で終わります" } } # Power で始まります # Shell で終わります # -Regex と $Matches を使う例 switch -Regex ("abc123") { "(\d+)" { "数字部分: $($Matches[1])" } } # 数字部分: 123 ループ制御 既定では、ある値が複数の条件に一致した場合、一致したすべての コードブロックが実行されます。これを制御するキーワードがあります。 - break : switch 文全体を即座に終了します。それ以降の値や条件は 照合されません。 - continue : 現在の値の照合を打ち切り、次の値の照合へ進みます。 (-File やコレクションを処理しているときに役立ちます) switch -Regex (1, 2, 3, 4) { "1" { "1 です"; break } "2" { "2 です" } } # 1 です (break により以降の値は処理されない) 関連項目 about_If about_Comparison_Operators about_Break about_Continue about_Foreach ---- 原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP |