Posted at

PowerShellでEnumを定義して、引数のバリデーションに使用する

More than 1 year has passed since last update.

とりあえず覚書。

清書は気が向いたらする。(編集リクエストお待ちしてます)


Enumの定義

Enum Name {

Value1 = 100
Value2 = 200
}


Paramへの書き方

Param(

[ValidateScript({[Enum]::GetValues([Name]) -contains $_})]
[string]valueText
)

# Paramが先頭でないとエラーになるのでこの位置に定義
Enum Name {
Value1 = 100
Value2 = 200
}

# Enumの型に変換する
$value = [Name]$valueText

# 二段変換でもいいらしい
$valueInt = [int][Name]$valueText