来自 ValidateSet 的 Powershell 多个函数参数

Sok*_*edu 5 powershell parameter-passing validateset

我正在使用 PowerShell 编写脚本,在某些时候我需要在函数参数上使用 ValidateSet。这是一个非常好的功能,但我需要的还不止这些。

例如

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

    write-host $Fields
}
Run Code Online (Sandbox Code Playgroud)

所以这个代码片段允许我从列表中选择一个项目
JustAnExample -Fields IPAddress

然后将其打印到屏幕上。我想知道是否有可能允许选择多个值并将它们传递给一个验证集中的功能,就像这样

JustAnExample -Fields IPAddress Cluster
Run Code Online (Sandbox Code Playgroud)

也许有一个图书馆,或者我只是错过了一些东西,但我真的找不到解决方案。

Mat*_*sen 6

如果要将多个字符串参数传递给-Fields参数,请将其更改为数组类型 ( [String[]]):

param(
    [Parameter(Mandatory=$false)]
    [ValidateSet("IPAddress","Timezone","Cluster")]
    [String[]]$Fields
)
Run Code Online (Sandbox Code Playgroud)

并用,而不是空格分隔参数:

JustAnExample -Fields IPAddress,Cluster
Run Code Online (Sandbox Code Playgroud)