我试图找到一篇我看到的关于函数参数的文章,当先前定义的参数的值等于某个值时,该参数允许使用动态参数。到目前为止,我对动态参数或参数集的理解还不是我想要的,或者我需要一个更好的例子。
尝试执行类似的操作,其中-DHCP
是一个切换参数,仅当-Section
参数等于DEVICESETTINGS
的有效值时才出现。
Get-VeloEdgeConfig -Name "ORMYEDGES*" -EdgeState CONNECTED -Section DEVICESETTINGS -DHCP
任何参考或建议都很好。
谢谢!
答案 0 :(得分:0)
这是我的做法,结合了ParameterSet
和ValidateScript
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