当前位置: 首页 > 知识库问答 >
问题:

ValidateSet中的Powershell多个函数参数

孔礼骞
2023-03-14

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

例如:

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

    write-host $Fields
}

因此,此代码段允许我从列表中选择一个项目,如
justanexample-fieldsipaddress

然后将其打印到屏幕上。我想知道是否有可能允许选择多个值并将它们传递给来自一个验证集的函数,如下所示

JustAnExample -Fields IPAddress Cluster

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

共有1个答案

慕学海
2023-03-14

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

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

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

JustAnExample -Fields IPAddress,Cluster
 类似资料:
  • 好的,所以我正在尝试编写一个高级函数,它使用两个不同的参数集名称,一个是另一个是。 这大部分工作都很好,但是,我的问题是: 的输出在部分给出了以下内容: 从外观上看,这正是我想要的--一个参数集,我可以在其中验证几个不同的列表,并在其中移动,我有密码、描述等;另一个参数集,我只验证的一个值,并有一个只属于参数集的参数。 不幸的是,在ISE中尝试测试时,如果输入: ,我从IntelliSense得到

  • 本文向大家介绍PowerShell函数中把参数传入另一个函数的函数传参例子,包括了PowerShell函数中把参数传入另一个函数的函数传参例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,可以使用@PSBoundParameters来将参数传递给另一函数。 下面,我们来创建一个Get-BIOS的函数, 在这个函数中,我们并没有作任何实际的操作,只是将输入的参

  • 是否可以使参数验证集与通配符一起工作? 我希望在位置接受0-100。 错误消息: 无法验证参数“variable”得参数.参数“6.1.1.0”不属于集合“6.1...”由ValidateSet属性指定。提供一个集合中的参数,然后重试该命令。+CategoryInfo:InvalidData:(:)[],ParentContainsErrorRecordException+FullyQualifi

  • } 预期的结果应该是:当编写'test-argumentcompleterf'时,点击tub按钮后,F autocompleted到ful。提前感谢您的帮助!

  • 本文向大家介绍PowerShell中对函数参数的命名建议,包括了PowerShell中对函数参数的命名建议的使用技巧和注意事项,需要的朋友参考一下 PowerShell自定义函数的参数没有具体的命名规则,那么怎么做才能让参数的命名更加科学可持续。 我们应该怎么来命名函数的参数名称呢?有没有一个可供参考的列表?当然微软没有给出来。但是我们可以来理一个列表出来。微软自带了大量的cmdlet,这些cmd