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

布尔参数上的PowerShell验证集

孙玮
2023-03-14

我试图使用ValidateSet和一个布尔参数,但我无法使它像预期的那样工作。

复制该问题的示例:

function Set-Boolean
{
    [CmdletBinding()]
    [OutputType([Bool])]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [ValidateNotNullOrEmpty()]
        [ValidateSet($false,$true)]
        [Bool] $Bool
    )

    Process
    {
        $Bool
    }
}

我尝试将ValidateSet更改为[ValidateSet('$false','$true')],选项卡完成按预期工作,但是参数验证仍然失败,因为参数需要字符串“$false'”“$true”

我可以将ValidateSet更改为[ValidateSet([bool]0,[bool]1)]并使其按我所期望的方式运行,但我发现对于完成布尔参数而言,01的用户体验比$true$false要差。

当选择$true时,函数的预期输出应为true;当选择$false时,函数的预期输出应为false

我在代码中实现了一个变通方法,但我想知道如何使用ValidateSet和一个布尔参数(如果可能的话),使用户能够使用选项卡完成。

共有1个答案

谭景福
2023-03-14

可以使用validateset自动完成,而不指定输入变量类型。但是,在这种情况下不能使用01作为输入:

function Set-Boolean
{
    [CmdletBinding()]
    [OutputType([Bool])]
    Param
    (
        [Parameter(Mandatory=$true, Position=0)]
        [ValidateNotNullOrEmpty()]
        [ValidateSet($false,$true)]
        $Bool
    )

    Process
    {
        [System.Convert]::ToBoolean($Bool)
    }
}
 类似资料:
  • 参数验证功能 1 是基于 JSR303 实现的,用户只需标识 JSR303 标准的验证 annotation,并通过声明 filter 来实现验证 2。 Maven 依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.

  • 出于某种原因,我得到了这个布尔值的空对象引用,我不知道为什么。我不明白为什么布尔值返回空对象引用 这是活动代码 这是发生在第101行和第75行的完整错误日志

  • 我不知道如何使用。我怎样才能把false传给Mockito。验证我尝试了两种不同的方法,但都不起作用。

  • 本文向大家介绍PowerShell函数使用正则表达式验证输入参数实例,包括了PowerShell函数使用正则表达式验证输入参数实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,输入的参数是否合法可以通过正则表达式来进行约束。正则表达式来约束输入参数,将使用ValidatePattern指令。 之前我们通过ValidateSet来作为参数的智能提示,其实它也起

  • 我使用flyway 4.0,hibernate 5.1.0。最终数据库和2个数据库:postgresql 9.4.1208和hsqldb 2.3.1(用于测试) 我们需要监督应用程序的数据库状态。我创建了一个SchemaVersionEntity来检查数据库(脚本的版本和最后一个脚本的状态成功)实体列成功是布尔类型 我们进行jpa验证:在flyway postgresql CreateMatada

  • 我试图使用来获得一个基本的示例。但这是我收到的错误: