LoginSignup
42
41

More than 5 years have passed since last update.

引数の取り方備忘録

Last updated at Posted at 2016-05-23

ブログからの転載

引数を受け取るための宣言方法と使いそうなパラメーターの備忘録

パラメーターの属性

基本的な書き方

引数は 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
)

参考

42
41
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
41