Home > Windows にまつわる e.t.c.

PowerShell の switch の使い方


switch をちょいちょい使うのですが、PowerShell の switch は (昔使い慣れた)C/C++ と結構違うので自分メモです。

 

基本形

値はマジックナンバーだけではなく、変数(定数として変数を使うイメージ)で書くことも可能。

switch (変数){
    値 {
        処理
    }

    値 {
        処理
    }

    default {
        処理
    }
}

 

条件式で書く場合( $_ と比較する / $_ -ge 10 みたいな感じで )

switch (変数){
    { 条件式 } {
        処理
    }

    { 条件式 } {
        処理
    }

    default {
        処理
    }
}

 

文字列比較で書く場合

switch [比較パターン] (変数) {
    比較文字列 {
        処理
    }

    比較文字列 {
        処理
    }

    default {
        処理
    }
}

 

比較パターン 意味 比較文字列例
無指定 or -Exact 完全一致(大文字小文字を区別するときは -CaseSensitive と併用) "abc"
-Wildcard ワイルドカード(大文字小文字を区別するときは -CaseSensitive と併用) "abc*"
-Regex 正規表現(大文字小文字を区別するときは -CaseSensitive と併用) "^abc"

 

条件ヒットした全ての処理が実行されるので、1つだけ実行させたい場合は処理に break を書きます。

PowerShell プロンプトにコピペして実行する場合は、関数内に swich を入れないと、構文エラーになることがあります。(if も同様。多分 Windows 10 の build bug)

 

関連情報

関数を PowerShell プロンプトで実行する
http://www.vwnet.jp/Windows/PowerShell/2016100401/UseFunctionInPsPrompt.htm

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.