我有一个powershell脚本(setup.ps1
),我们将其用作开发环境设置脚本的入口点。它需要一个参数:
param(
[Parameter(Position=0,HelpMessage="The targets to run.")]
[Alias("t")]
[string[]]
$Targets = "Help"
)
当我跑步时
PS > get-help .\setup.ps1 -detailed
在参数部分,我的帮助信息没有出现:
PARAMETERS
-Targets <String[]>
我需要做些什么才能显示参数帮助信息?
答案 0 :(得分:87)
您在文件顶部放置了一种注释样式,可由PowerShell帮助系统解码。这是一个例子:
<#
.SYNOPSIS
.
.DESCRIPTION
.
.PARAMETER Path
The path to the .
.PARAMETER LiteralPath
Specifies a path to one or more locations. Unlike Path, the value of
LiteralPath is used exactly as it is typed. No characters are interpreted
as wildcards. If the path includes escape characters, enclose it in single
quotation marks. Single quotation marks tell Windows PowerShell not to
interpret any characters as escape sequences.
.EXAMPLE
C:\PS>
<Description of example>
.NOTES
Author: Keith Hill
Date: June 28, 2010
#>
function AdvFuncToProcessPaths
{
[CmdletBinding(DefaultParameterSetName="Path")]
param(
[Parameter(Mandatory=$true, Position=0, ParameterSetName="Path",
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
HelpMessage="Path to ...")]
[ValidateNotNullOrEmpty()]
[string[]]
$Path,
[Alias("PSPath")]
[Parameter(Mandatory=$true, Position=0, ParameterSetName="LiteralPath",
ValueFromPipelineByPropertyName=$true,
HelpMessage="Path to ...")]
[ValidateNotNullOrEmpty()]
[string[]]
$LiteralPath
)
...
有关详细信息,请参阅帮助主题 - man about_comment_based_help
。
答案 1 :(得分:19)
显然,如果您定义了帮助标题,则可以在参数后面使用备注(#)(在此示例中: #要运行的目标。 ) :
<#
.SYNOPSIS
.
.DESCRIPTION
.
.PARAMETER Path
The path to the .
.PARAMETER LiteralPath
Specifies a path to one or more locations. Unlike Path, the value of
LiteralPath is used exactly as it is typed. No characters are interpreted
as wildcards. If the path includes escape characters, enclose it in single
quotation marks. Single quotation marks tell Windows PowerShell not to
interpret any characters as escape sequences.
#>
Param(
[String]$Targets = "Help" #The targets to run.
)
结果:
PS C:\> Get-help .\Setup.ps1 -Detailed
NAME
C:\Setup.ps1
SYNOPSIS
.
SYNTAX
C:\Setup.ps1 [[-Targets] <String>] [<CommonParameters>]
DESCRIPTION
.
PARAMETERS
-Targets <String>
The targets to run.
答案 2 :(得分:2)
一个只需要文件顶部的<# .SYNOPSIS #>
部分即可使其正常工作,您可以内联地对您的参数进行注释:
<# .SYNOPSIS #>
param(
[String]$foo ## my 1st cool param
,[Switch]$bar ## my 2nd crazy switch
)
...
(已通过PS 5.1.14409.1018
选中)