今回は、PowerShell Core の関数における、位置パラメーターとスイッチパラメーターについて説明します。
位置パラメーターとは
以下のような、パラメーター名が省略可能なコマンドレットがあるとします。
コマンドレット名 -パラメーター名1 値1 -パラメータ名ー2 値2
これは、以下のようにパラメーターを省略して書くことができます。
コマンドレット名 値1 値2
この場合は、パラメーター値を指定する位置(順番)によって、自動でパラメーター名を判断してくれるので位置パラメーターと呼ばれます。
逆に、パラメーター名を指定しなければならないものは、名前付きパラメーターと呼びます。
位置パラメーターを持つ関数の作り方
前回の記事で紹介した関数 Say-Hello は、位置パラメーターを持つ関数になります。
function Say-Hello { param ([string]$name) Write-Host("こんにちは" + $name + "さん") }
よって、この Say-Hello は以下のように、パラメーター名を省略して実行することができます。
PS > Say-Hello "HIRO" HIRO
スイッチパラメーター
スイッチパラメーターは、値を必要としないパラメーターです。その代わり、関数名に続けてスイッチパラメーターの名前を入力します。
スイッチパラメータを定義するには、以下に示すように、パラメータ名の前に[switch]を付けます。
function 関数名 { Param([switch] $パラメータ名 ) )
スイッチパラメーターを持つ関数の作り方
以下にスイッチパラメーターを持つ関数の例を示します。
関数 Set-Switch は 「on」というスイッチパラメーターを持たせています。
パラメーター「on」が指定されると、「スイッチをオンにしました。」が表示されます。
function Set-Switch { param([switch]$on) if ($on) { Write-Host "スイッチをオンにしました。" } }
スイッチパラメーターを持つ関数の実行
先ほど定義した Set-Switch の実行例を以下に示します。
PS > Set-Switch on スイッチをオンにしました。
まとめ
今回は、位置パラメーターを持つ関数とスイッチパラメーターを持つ関数の作成方法と使用方法について説明をしました。
位置パラメーターやスイッチパラメーターは使用頻度が高いので、覚えておきましょう。
コメント