当其他参数的值等于某个值时的附加功能参数

时间:2018-11-01 03:20:11

标签: powershell

我试图找到一篇我看到的关于函数参数的文章,当先前定义的参数的值等于某个值时,该参数允许使用动态参数。到目前为止,我对动态参数或参数集的理解还不是我想要的,或者我需要一个更好的例子。

尝试执行类似的操作,其中-DHCP是一个切换参数,仅当-Section参数等于DEVICESETTINGS的有效值时才出现。

Get-VeloEdgeConfig -Name "ORMYEDGES*" -EdgeState CONNECTED -Section DEVICESETTINGS -DHCP

任何参考或建议都很好。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是我的做法,结合了ParameterSetValidateScript

function Get-VeloEdgeConfig() {

    [cmdletbinding(
        DefaultParameterSetName='Default'
    )]
    Param
    (
        [Parameter()]
        [String]$Section,

        [Parameter(ParameterSetName='Section')]
        [ValidateScript({ $Section -eq 'DEVICESETTINGS' })]
        [Switch]$DHCP
    )

    # Print out current ParameterSet Section
    $PSCmdlet.ParameterSetName
}

# Calling the function
Get-VeloEdgeConfig -Section DEVICESETTINGS -DHCP # Selection
Get-VeloEdgeConfig -Section SOMETHINGELSE -DHCP # throws an error