1. ホーム
  2. powershell

Powershellスクリプトのパラメータにヘルプメッセージを表示させるにはどうしたらいいですか?

2023-12-09 17:45:30

質問

私はパワーシェルスクリプト( 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[]>

パラメータのヘルプメッセージを表示させるためにはどうしたらよいですか?

どのように解決するのですか?

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 .