[Parameter (Mandatory=$False)]
[ValidateSet("Val1", "Val2", "Val3", "Val4", "Val5",ignorecase=$true)]
[string[]] $configs = ""
有没有办法改变上面的内容,以便我可以一次接受几个枚举值?
我希望能够像这样启动脚本:
。\ MyAwesome-Script.ps1 -config Val1 Val2(或枚举值的任意组合作为参数)
但是我需要这个也是标签完整的(甚至一个字?)
为了完整性,我正在使用PS 4.0,并且还安装了PSCX 3.1
答案 0 :(得分:7)
只需将变量设为数组,它就可以正常工作。鉴于以下功能:
function Test-ValidateSet
{
PARAM(
[ValidateSet("Val1", "Val2", "Val3")]
[string[]]$MyParam
)
foreach($value in $MyParam)
{
Write-Host "Parameter given: $value"
}
}
对于上述方法,我在MyParam
参数上得到 tab -completion。要输入参数的数组,只需用逗号字符分隔值。
Test-ValidateSet -MyParam Val1, Val2, Val3
这支持PowerShell控制台和PowerShell ISE中的 tab -completion。