【发布时间】:2014-12-15 07:28:14
【问题描述】:
新手问题。
如何为 Powershell cmdlet 声明嵌套参数?我想要一个看起来像这样的 cmdlet。
New-FootballTeam
[-Defenders [[-LeftBack] <string>] [[-RightBack] <string>] ]
[-Midfielders [[-LeftWing] <string>] [[-RightWing] <string>] [[-CentreMidfield] <string>] ]
我尝试使用ParameterSetName 参数将Defenders 和Midfielders 下的参数组合在一起。但是当我执行help New-FootballTeam 时,Defenders 和 Midfielders 标记不会出现,我会看到类似这样的内容。
New-FootballTeam
[[-LeftBack] <string>] [[-RightBack] <string>]
[[-LeftWing] <string>] [[-RightWing] <string>] [[-CentreMidfield] <string>]
谢谢,提前。
【问题讨论】:
-
PowerShell 中的参数集是互斥的(尽管某些参数可以在所有参数集中)。这是你的意图吗?您不能同时指定 -LeftBack 和 -LeftWing?如果不是这样,为什么需要参数 -Defenders 和 -Midfielders?你可以有 -LeftBackDefender、-RightBackDefender、-LeftWingMidfielder 等。
-
我的意图只是实现一个 cmdlet,就像我上面提到的那样。在这里发帖之前,我正在寻找方法并遇到了 ParameterSets 并在这里写了它,因为我不知道它是否可以成为解决方案。是的。有明显的变通方法,例如使用 -LeftBackDefender 和 -RightBackDefender。但肯定有一种方法可以按照我在问题中提到的方式实现它吗?
标签: c# powershell