ブログからの転載
引数を受け取るための宣言方法と使いそうなパラメーターの備忘録
パラメーターの属性
基本的な書き方
引数は Param 属性を使用して宣言します。
Param(
[Parameter()]
$ParameterName
)
複数のパラメーター属性を設定するときはカンマで区切ります。
Param(
[Parameter(Argument1=value1,
Argument2=value2)]
$ParameterName
)
引数を必須にする
パラメーター属性に、Mandatory を宣言します
Param(
[Parameter(Mandatory=$true)]
$ParameterName
)
パイプラインから引数を受け取る
Param(
[Parameter(ValueFromPipeline=$true)]
$ParameterName
)
引数の型を宣言する
String 型で宣言
Param(
[Parameter()]
[String]
$ParameterName
)
Int 型で宣言
Param(
[Parameter()]
[Int]
$ParameterName
)
String 型の配列で宣言
Param(
[Parameter()]
[String[]]
$ParameterName
)
Datetime 型で宣言
Param(
[Parameter()]
[Datetime]
$ParameterName
)
Switch 型で宣言
Param(
[Parameter()]
[Switch]
$ParameterName
)
引数に初期値を設定する
リテラルで設定する
Param(
[Parameter()]
[String]
$ParameterName = 'DefaultParameter'
)
コマンドレットで初期値を設定する例
セパレーターなし今日の年月日をデフォルトの引数にする例。
Param(
[Parameter()]
[String]
$ParameterName = (Get-Date -Format 'yyyyMMdd')
)
検証属性
受け取るパラメーターの数を制限する
1~5 個のパラメーターを受け取る例。
Param(
[Parameter()]
[ValidateCount(1,5)]
[String[]]
$ParameterName
)
受け取るパラメーターの文字数を制限する
1~5 文字の制限をかける例。
Param(
[Parameter()]
[ValidateLength(1,5)]
[String]
$ParameterName
)
受け取るパラメーターの数値範囲を制限する
1~5 で制限をかける例。
Param(
[Parameter()]
[ValidateRange(1,5)]
[Int]
$ParameterName
)
決められたパラメーター以外は弾く
Low, Middle, High 以外は弾く例。
Param(
[Parameter()]
[ValidateSet("Low", "Middle", "High")]
[Int]
$ParameterName
)
Null を通さない
Param(
[Parameter()]
[ValidateNotNull()]
$ParameterName
)
Null や値が空のは通さない
Param(
[Parameter()]
[ValidateNotNullOrEmpty()]
$ParameterName
)
受け取るパラメーターを正規表現で制限する
3 文字の数値 + 半角ハイフン + 4 文字の数値のみ通す例。
Param(
[Parameter()]
[ValidatePattern("^\d{3}\-\d{4}$")]
[String]
$ParameterName
)
バリデーションスクリプトをかける
ファイルの存在チェックをかける例。
Param(
[Parameter()]
[ValidateScript({Test-Path -LiteralPath $_ -PathType Leaf})]
$ParameterName
)