我写了一个带有一些参数的powershell脚本,但我不知道如何获得类似的语法
脚本.ps1 [A|B] C [D]
script.ps1 [A|B] CEF
script.ps1 [A|B] CG
目标:
- A或B或两者都通过
- C 始终是强制性的
- 如果没有传递其他参数,则使用第一个参数集 -> D 不是强制性的
- 如果 E 被传递 F 是强制性的,反之亦然(第二个参数集)
- G 被传递(第三个参数集)
我的脚本看起来像这样
[CmdLetbinding(DefaultParameterSetName='ParamSet1')]
Param(
[Parameter(Mandatory=$true)][String]$A,
[Parameter(Mandatory=$false)][System.Net.IPAddress[]]$B,
[Parameter(Mandatory=$true)][String]$C,
[Parameter(Mandatory=$false, ParameterSetName="ParamSet1")][Int32]$D=120,
[Parameter(Mandatory=$true, ParameterSetName="ParamSet2")][String]$E,
[Parameter(Mandatory=$true, ParameterSetName="ParamSet2")][String]$F,
[Parameter(Mandatory=$true, ParameterSetName="ParamSet3")][Switch]$G
)
所以参数 C - G 看起来不错。但我不知道如何写 A 和 B 的条件。
你有什么主意吗?