[PowerShell Core 入門] 位置パラメーターとスイッチパラメーター

PowerShell Core PowerShell Core
PowerShell Core

今回は、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
スイッチをオンにしました。

まとめ

今回は、位置パラメーターを持つ関数とスイッチパラメーターを持つ関数の作成方法と使用方法について説明をしました。

位置パラメーターやスイッチパラメーターは使用頻度が高いので、覚えておきましょう。

コメント

タイトルとURLをコピーしました