作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
[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
最佳答案
只需将您的变量设为数组,它就可以正常工作。给定以下函数:
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。
关于Powershell 枚举参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23704235/
我是一名优秀的程序员,十分优秀!