有没有办法为powershell cmdlet参数集添加注释

时间:2018-01-03 22:53:07

标签: powershell

假设我有一个包含多个(超过3个)参数集的cmdlet。用户可能很难弄清楚他们应该将哪一个用于他们的用例。无论如何都要记录参数集,以便在使用 Get-Help cmdlet时显示文档?

例如:

start:

virtual at esp+N
  section IMAGE_SECTION_HEADER
end virtual  

lea eax, [section]

也就是说,如何在PS C:\> get-help Do-Stuff NAME Do-Stuff SYNTAX Do-Stuff -My [-P1 <string>] [-P2 <string>] [-P3 <string>] ->Use when doing my stuff.<- Do-Stuff -Your [-P1 <string>] [-P4 <string>] [-P5 <string>] ->Use when doing your stuff.<- Do-Stuff -Their <string> [-P2 <string>] [-P4 <string>] [-P6 <string>] ->Use when doing their stuff.<- PARAMETERS . . . 箭头->之间显示内容?

1 个答案:

答案 0 :(得分:0)

Bill_Stewart让你走上正轨。您还可以查看系统上的cmdlet,了解如何在那里实施帮助。

复制......     C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ V1.0 \模块  ......来看看那里的什么

您可以使用PowerShell_ISE或VSCode查看未经过模糊处理的项目。 您可以使用工具查看PowerShell帮助文件,甚至可以为cmdlet / modules / Functions工作构建帮助文件。

示例:

PowerShell Cmdlet帮助编辑器一个WPF工具,用于编辑PowerShell模块的帮助内容

https://github.com/Crypt32/PsCmdletHelpEditor

或者你可以获得Sapien的PS Cmdlet帮助编辑器&#39;或者他们的PowerShell HelpWriter&#39;。

有一些内置方法可以查看函数的源代码,并查看其中的示例。

Get-Command -CommandType Function
# Use the output to review function content
${function:Write-VolumeCache} | clip.exe

或者这样

Get-Command -Name 'Format-Hex' -CommandType Function `
| Select-Object -ExpandProperty 'Definition' `
| clip.exe

还有其他方法可以查看模块/ cmdlet /函数的源代码。

您当然可以编写一个函数添加到您的$ profile中,以便即时查看此类内容。

根据我对OP的评论进行更新。这就是Bill_Stewart和我指向你的地方。

https://social.technet.microsoft.com/wiki/contents/articles/15994.powershell-advanced-function-parameter-attributes.aspx#HelpMessage

Example:


Param(
        [Parameter(ParameterSetName="secure")]
        [Parameter(HelpMessage = "Enter the title for the input box. No more than 25 characters.",
        ParameterSetName="plain")]        

        [ValidateNotNullorEmpty()]
        [ValidateScript({$_.length -le 25})]
        [string]$Title = "User Input",

        [Parameter(ParameterSetName="secure")]        
        [Parameter(HelpMessage = "Enter a prompt. No more than 50 characters.",ParameterSetName="plain")]
        [ValidateNotNullorEmpty()]
        [ValidateScript({$_.length -le 50})]
        [string]$Prompt = "Please enter a value:",

        [Parameter(HelpMessage = "Use to mask the entry and return a secure string.",
        ParameterSetName="secure")]
        [switch]$AsSecureString
    )

查看其他示例指针的注释也会显示出这种情况。