【问题标题】:How to write different comment-based Help syntax?如何编写不同的基于注释的帮助语法?
【发布时间】:2019-11-20 15:43:08
【问题描述】:

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

例如,New-Item:

PS> Get-Help New-Item 姓名 新物品 概要 创建一个新项目。 句法 新项目 [[-Path] ] [-Confirm] [-Credential ] [-Force] [-ItemType ] -Name [-UseTransaction] [-Value] [-WhatIf] [] 新项目 [-Path] [-Confirm] [-Credential ] [-Force] [-ItemType ] [-UseTransaction] [-Value] [-WhatIf] []

如您所见,在 SYNTAX 部分,为同一命令编写了 2 种形式。
我想用我自己的功能做同样的事情:

PS> Get-Help MyFunction 句法 我的函数 [-Param1] [-Param3] [] 我的函数 [-Param2] [-Param3] []

SYNTAX 部分应该是自动生成的,但我已经尝试使用外部 MAML 帮助文件,使用 Sapien PowerShell HelpWriter 或手动,均未成功。如果手工是唯一的解决方案,那太费时了,但至少我会有我的答案。

我正在开发 PowerShell 5.1

【问题讨论】:

  • 各种语法差异基于ParameterCmdletBinding 中的ParameterSetName 属性。如果您不使用它们,您将不会在帮助中获得输出。

标签: powershell


【解决方案1】:

解决办法:

function MyFunction {
    <#
    comment-based Help
    #>
    [CmdletBinding(DefaultParameterSetName='First')]
    param (
        [Parameter(ParameterSetName='First')]
        [switch]$Param1,

        [Parameter(ParameterSetName='Second')]
        [switch]$Param2,

        [switch]$Param3
    )
...
}

然后,使用Get-Help 我得到了我的预期结果:

PS> Get-Help MyFunction

SYNTAX
    MyFunction [-Param1] [-Param3] []

    MyFunction [-Param2] [-Param3] []

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多