[PowerShell 関数の基礎] 引数のオプションとデフォルト値の使用方法を理解しよう

概要

PowerShell の関数では、引数にオプションとデフォルト値を設定することができます。オプションを設定することで、引数を省略できるようになります。デフォルト値を設定することで、引数が省略された場合に既定値が使用されるようになります。この記事では、引数にオプションとデフォルト値を設定する方法について説明します。

構文

function Function-Name 
{
  param( 
    [Parameter(Mandatory=$false)] [Type]$Parameter1 = DefaultValue1, 
    [Parameter(Mandatory=$false)] [Type]$Parameter2 = DefaultValue2 
  ) 
  # 関数の本体 
}

上記のように、パラメーターに対して [Parameter(Mandatory=$false)] と指定することで、オプションを設定できます。また、引数に対して = DefaultValue のようにデフォルト値を指定することで、デフォルト値を設定できます。

使用例

以下は、Get-ComputerName という関数を定義し、引数にオプションとデフォルト値を設定する例です。この関数は、コンピューター名を取得する関数です。引数 -Full を指定すると、FQDN を返します。引数が省略された場合は、ローカルコンピューターの名前を返します。

function Get-ComputerName
{ 
  param( 
    [Parameter(Mandatory=$false)] [switch]$Full, 
    [Parameter(Mandatory=$false)] [string]$Default = $env:COMPUTERNAME 
  )

  if ( $Full) {
    return [System.Net.Dns]::GetHostByName($env:COMPUTERNAME).HostName
  } else {
    return $Default
  }
}

上記の関数を実行するには、以下のようにコマンドを入力します。

# ローカルコンピューターの名前を取得
PS C:> Get-ComputerName

# FQDN を取得
PS C:> Get-ComputerName -Full MyComputer.example.com

# デフォルト値を使用して取得
PS C:> Get-ComputerName -Default MyDefaultComputerName MyDefaultComputerName

このように、引数にオプションとデフォルト値を設定することで、より柔軟な関数を作成することができます。

コメント

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