Powershell 如何编写不同的基于注释的帮助语法?

Powershell 如何编写不同的基于注释的帮助语法?,powershell,Powershell,我希望我的模块函数使用Get-Helpcmdlet显示不同的语法 例如,对于新项目: PS> Get-Help New-Item NAME New-Item SYNOPSIS Creates a new item. SYNTAX New-Item [[-Path] ] [-Confirm] [-Credential ] [-Force] [-ItemType ] -Name [-UseTransaction] [-Value ] [-WhatIf] []

我希望我的模块函数使用
Get-Help
cmdlet显示不同的语法

例如,对于
新项目

PS> Get-Help New-Item NAME New-Item SYNOPSIS Creates a new item. SYNTAX New-Item [[-Path] ] [-Confirm] [-Credential ] [-Force] [-ItemType ] -Name [-UseTransaction] [-Value ] [-WhatIf] [] New-Item [-Path] [-Confirm] [-Credential ] [-Force] [-ItemType ] [-UseTransaction] [-Value ] [-WhatIf] [] PS>获取帮助新项目 名称 新项目 提要 创建一个新项目。 语法 新项目[[-路径]][-确认]-[凭证]-[强制]-[项目类型]-名称 [-UseTransation][-Value][-WhatIf][] 新项目[-路径][确认][凭证][强制][项目类型] [-UseTransation][-Value][-WhatIf][] 如您所见,在语法部分中,为同一命令编写了两个表单。
我希望在我自己的功能中也有同样的功能:

PS> Get-Help MyFunction SYNTAX MyFunction [-Param1] [-Param3] [] MyFunction [-Param2] [-Param3] [] PS>获取帮助MyFunction 语法 MyFunction[-Param1][-Param3][] MyFunction[-Param2][-Param3][] 语法部分应该是自动生成的,但我已经尝试使用外部MAML帮助文件,使用Sapien PowerShell HelpWriter或手动,但都没有成功。如果这是唯一的解决办法的话,那么手工太费时了,但至少我会有我的答案

我正在使用PowerShell 5.1解决方案:

函数MyFunction{
[CmdletBinding(DefaultParameterSetName='First')]
param(
[参数(ParameterSetName='First')]
[开关]$Param1,
[参数(ParameterSetName='Second')]
[开关]$Param2,
[开关]$3
)
...
}
然后,使用
Get Help
我得到了我的预期结果:

PS>获取帮助MyFunction
语法
MyFunction[-Param1][-Param3][]
MyFunction[-Param2][-Param3][]

各种语法差异基于
参数和
CmdletBinding
中的
参数setname
属性。如果不使用它们,您将无法在帮助中获得输出。