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

参数validateset通配符

壤驷旭
2023-03-14

是否可以使参数验证集与通配符一起工作?

我希望在*位置接受0-100。

param
  (
    [Parameter(Mandatory=$True)]
    [validateset("6.1.*.*")]
    [string]$variable
  )

错误消息:

无法验证参数“variable”得参数.参数“6.1.1.0”不属于集合“6.1...”由ValidateSet属性指定。提供一个集合中的参数,然后重试该命令。+CategoryInfo:InvalidData:(:)[],ParentContainsErrorRecordException+FullyQualifiedErrorId:ParameterArgumentValidationError

共有1个答案

王才英
2023-03-14

由于您似乎希望验证一个版本,您可能希望声明[version]类型的参数,并使用validatescript属性来验证该值,而不是使用字符串匹配:

function Test-Version {
  param(
    [ValidateScript({
        $_.Major -eq '6' -and 
        $_.Minor -eq '1' -and
        $_.Build -in (0..100) -and
        $_.Revision -in (0..100) -or 
        $(throw 'Wrong Version')
      })]
    [version]$Version
  )    
}
 类似资料:
  • 我正在用PowerShell编写一个脚本,在某个时候我需要在函数参数上使用ValidateSet。这是一个非常好的功能,但我需要的是更多的东西。 例如: 因此,此代码段允许我从列表中选择一个项目,如 然后将其打印到屏幕上。我想知道是否有可能允许选择多个值并将它们传递给来自一个验证集的函数,如下所示 也许有一个图书馆,或者我只是错过了一些东西,但我真的找不到一个解决方案。

  • 有办法实现这样的事情吗?这段代码与我想要实现的类似。 这里的问题是BiConsumer,我需要通配符是hashmap通配符的超级。 短绒是这样说的 但是,在执行,表示它需要是一种类型。但该类型当前是通配符。

  • 我试图编写一个Spock规范,在这里我想验证一个用三个参数调用的方法。我根本不关心前两个,任何参数类型的实例都可以。我试图使用Spock通配符参数匹配,但不断遇到问题。我的验证如下所示: 这里是一个mock,UploadedPackage和PackageImportResponse.builder是预期的参数;在更改调用SaveService的代码之前,我试图先进行一个有效的测试。 我还尝试省略类

  • 我有一个API,它允许传入任何任意路径,例如所有这些: 是有效路径。我试着这样描述: 但是https://generator.swagger.io在路径中编码斜线,所以不起作用。那么有没有办法用Swagger来描述我的API呢?

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

  • 问题内容: 我试图理解Java泛型,它们似乎很难理解。例如,这很好… …就是这个… … 还有这个 … …但是不能编译: 有人可以用简单的语言解释发生了什么吗? 问题答案: 对于泛型类型,主要要了解的是它们不是协变的。 因此,尽管您可以这样做: 以下内容将无法编译: 这是为了避免您绕过通用类型的情况: 因此,一一讲解您的示例 1个 您的通用方法采用a ,而您采用;(基本上是)。可以分配给类型,并且编