Powershellのパラメータには様々な属性が用意されている。
例えば、あるパラメータを必須にしたければParameter属性のMandatory引数を指定すれば良い。指定の仕方はこんな感じだ。
001 002 003 004 005 006 | Param( [parameter(Mandatory=$true)] [string]$name ) Write-Host $name |
nameパラメータを指定せずに実行すると以下のようなプロンプトが表示される。
合わせてHelpMessage引数を指定すると簡易ヘルプを表示させることもできる。
001 002 003 004 005 006 007 | Param( [parameter(Mandatory=$true, HelpMessage="あなたの名前を入力してください")] [string]$name ) Write-Host $name |
<!--EndFr
必須パラメータの引数にNullを許可するようにするにはAllowNull属性を使う。
001 002 003 004 005 006 007 008 009 010 011 012 | Param( [parameter(Mandatory=$true)] [object] [AllowNull()] $obj ) if($obj){ Write-Host $obj.GetType() }else{ Write-Host "obj = null" } |
AllowNull属性を指定せずにパラメータにNullを指定した場合は以下のようなエラーとなる。
似たようなものに、Stringの必須引数に空の文字列を許可するAllowEmptyString属性などがある。
その他にはValidation系の属性がいくつか揃っている。
たとえば、ValidateLength属性は文字列の長さを限定できる。
001 002 003 004 005 006 007 008 009 | Param( [parameter(Mandatory=$true)] [string] [ValidateLength(1,10)] $name ) {以下のパラメータが指定されました} Write-Host $name |
!- -End
ValidatePattern 属性は引数の検証パターンを正規表現で指定する。
001 002 003 004 005 006 007 008 009 | Param( [parameter(Mandatory=$true)] [string] [ValidatePattern("\d{3}-\d{3}-\d{4}")] $phone ) {以下のパラメータが指定されました} Write-Host $phone |
他にも色々と属性はあるので詳細はabout_Functions_Advanced_Parametersを参照すると良い。
0 件のコメント:
コメントを投稿