2017-01-20 11 views
1

私はPowerShellでスクリプトを作成していますが、ある時点では関数のパラメータでValidateSetを使用する必要がありました。それは非常に優れた機能ですが、私が必要とするものはそれ以上のものです。例えばPowershell ValidateSetの複数の関数パラメータ

Function JustAnExample 
{ 
    param(
     [Parameter(Mandatory=$false)][ValidateSet("IPAddress","Timezone","Cluster")] 
     [String]$Fields 
    ) 

    write-host $Fields 
} 

ので、このコードスニペットは、私はその
JustAnExample -Fields IPAddress

、その後、それを画面に出力しますように、リストから1つの項目を選択することができます。 複数の値を選択し、検証がそう

JustAnExample -Fields IPAddress Cluster 

たぶん、そのためのライブラリがあるまたは多分私はちょうど何かを逃したが、私は本当に「できるように設定される1つから機能することを通過できるようにする可能性がある場合、私は疑問に思いますこれに対する解決策を見いだす。

答えて

2

あなたは、-Fieldsパラメータに複数の文字列引数を渡す配列型([String[]])に変更する場合:

param(
    [Parameter(Mandatory=$false)] 
    [ValidateSet("IPAddress","Timezone","Cluster")] 
    [String[]]$Fields 
) 

そして,代わりのスペースで引数を区切る:

JustAnExample -Fields IPAddress,Cluster 
+0

OMG男は大変ありがとう!あなたは私に多くの時間を救った – SokIsKedu

+0

もう一つ質問があります。これらの選択肢をユニークにする方法はありますか?私がプログラムを実行するとき、私は2つ以上の同じ値を選ぶことができるからです。だから、私が望むのは、ユーザーが与えられたリストから1つの値だけを選択できるようにすることです。 私はhttps://social.technet.microsoft.com/wiki/contents/articles/15994.powershell-advanced-function-parameter-attributes.aspx#ValidateSet を読んでいましたが、実際にこの問題に関連するものは見つかりませんでした – SokIsKedu

関連する問題