トピック
about_Comment_Based_Help
簡易説明
関数およびスクリプトに関するコメントベースのヘルプ トピックを記述する方法について説明します。
詳細説明
特別なヘルプのコメント キーワードを使用して、関数およびスクリプトに関するコメントベースのヘ
ルプ トピックを記述することができます。
Get-Help コマンドレットでは、XML ファイルから生成されるコマンドレットのヘルプ トピックを表
示する場合と同じ形式でコメントベースのヘルプが表示されます。ユーザーは、Get-Help の
Detailed、Full、Example、Online などのすべてのパラメーターを使用して、関数およびスクリ
プトのヘルプを表示することができます。
また、ヘルプのコメント キーワードを使用して、スクリプトおよび関数に関する XML ベースのヘル
プ ファイルを記述したり、別のヘルプ ファイルにユーザーをリダイレクトすることもできます。
このトピックでは、関数およびスクリプトに関するヘルプ トピックを記述する方法について説明しま
す。関数およびスクリプトに関するヘルプ トピックを表示する方法については、「Get-Help」を参
照してください。
コメントベースのヘルプの構文
コメントベースのヘルプの構文は次のとおりです。
# .< help keyword>
# <help content>
- または -
<#
.< help keyword>
< help content>
#>
コメントベースのヘルプは、一連のコメントとして記述されます。各コメント行の前にコメント記号
(#) を入力することも、"<#" と "#>" 記号を使用してコメント ブロックを作成することもできま
す。コメント ブロック内のすべての行はコメントとして解釈されます。
コメントベースのヘルプ トピックにある行はすべて、連続している必要があります。ヘルプ トピッ
クの一部ではないコメントに続けてコメントベースのヘルプ トピックを記述する場合は、ヘルプで
はないコメントの最終行とコメントベースのヘルプの先頭の間に、少なくとも 1 行の空白行が必要
です。
キーワードは、コメントベースのヘルプの各セクションを定義します。各コメントベースのヘルプ
キーワードの前にはドット (.) を付けます。キーワードは任意の順で記述することができます。キー
ワード名の大文字と小文字は区別されません。
たとえば、関数またはスクリプトの説明の前には、Description キーワードを記述します。
<#
.Description
Get-Function は、セッションにあるすべての関数の名前および構文を表示します。
#>
コメント ブロックには少なくとも 1 つのキーワードが含まれている必要があります。EXAMPLE な
どの一部のキーワードは、同じコメント ブロックに何度も指定することができます。各キーワードの
ヘルプの内容は、キーワードの次の行から開始して複数行に記述できます。
関数のコメントベースのヘルプの構文
関数に関するコメントベースのヘルプは、次に示す 3 つの位置のいずれかに指定することができます。
-- 関数本体の先頭。
-- 関数本体の末尾。
-- Function キーワードの前。関数のヘルプの最終行と Function キーワードとの間に複数の
空白行を挿入することはできません。
次にその例を示します。
function MyFunction
{
<#
.< help keyword>
< help content>
#>
<function commands>
}
- または -
function MyFunction
{
<function commands>
<#
.< help keyword>
< help content>
#>
}
- または -
<#
.< help keyword>
< help content>
#>
function MyFunction { }
スクリプトのコメントベースのヘルプの構文
スクリプトに関するコメントベースのヘルプは、次に示すスクリプト内の 2 つの位置のいずれかに指
定することができます。
-- スクリプト ファイルの先頭。スクリプト内でスクリプトのヘルプより前に配置できるのは、コメ
ントおよび空白行のみです。
-- (ヘルプの後の) スクリプト本文の最初の項目が関数宣言である場合は、スクリプトのヘルプの末
尾と関数宣言との間に、少なくとも 2 行の空白行が必要です。そうしないと、このヘルプがスク
リプトに関するヘルプではなく、関数に関するヘルプとして解釈されます。
-- スクリプト ファイルの末尾。
次にその例を示します。
<#
.< help keyword>
< help content>
#>
function MyFunction { }
- または -
function MyFunction { }
<#
.< help keyword>
< help content>
#>
コメントベースのヘルプ キーワード
有効なコメントベースのヘルプ キーワードを以下に示します。この一覧は、ヘルプ トピックでの
一般的な出現順に、各キーワードの使用目的を説明しています。これらのキーワードは、コメント
ベースのヘルプに任意の順序で記述することができます。大文字と小文字は区別されません。
.SYNOPSIS
関数またはスクリプトの簡単な説明です。このキーワードは、各トピックで 1 回のみ使用する
ことができます。
.DESCRIPTION
関数またはスクリプトの詳細な説明です。このキーワードは、各トピックで 1 回のみ使用する
ことができます。
.PARAMETER <Parameter-Name>
パラメーターの説明です。関数またはスクリプトの構文で、各パラメーターに対して Parameter
キーワードを入れることができます。
Parameter キーワードは、コメント ブロック内で任意の順序で記述することができますが、
パラメーター (およびその説明) がヘルプ トピックで表示される順序はその関数またはスクリプ
トの構文によって決定されます。順序を変更するには、構文を変更します。
また、関数またはスクリプトの構文で、パラメーター変数名の直前にコメントを配置することによって、
パラメーターの説明を記述することもできます。構文のコメントと Parameter キーワードの両方を使用
した場合、Parameter キーワードに関連付けられている説明が使用され、構文のコメントは無視されます。
.EXAMPLE
関数またはスクリプトを使用したサンプル コマンドです。オプションでサンプル出力および説
明を記述します。それぞれの例に対してこのキーワードを記述します。
.INPUTS
関数またはスクリプトにパイプすることができるオブジェクトの Microsoft .NET Framework 型
です。入力オブジェクトの説明を含めることもできます。
.OUTPUTS
コマンドレットによって返されるオブジェクトの .NET Framework 型です。返されるオブジェク
トの説明を含めることもできます。
.NOTES
関数またスクリプトに関する追加情報です。
.LINK
関連トピックの名前です。それぞれの関連トピックに対してこのキーワードを記述します。
この内容は、ヘルプ トピックの「関連するリンク」セクションに表示されます。
Link キーワードの内容には、同じヘルプ トピックのオンライン バージョンの URI (Uniform
Resource Identifier) を含めることもできます。オンライン バージョンは、Get-Help の
Online パラメーターを使用すると開きます。URI は、"http" または "https" から開始する
必要があります。
.COMPONENT
関数またはスクリプトで使用されているか、関数またはスクリプトに関連するテクノロジまたは
機能です。この内容は、Get-Help コマンドに Get-Help の Component パラメーターが含まれ
ている場合に表示されます。
.ROLE
ヘルプ トピックのユーザー ロールです。この内容は、Get-Help コマンドに Get-Help の
Role パラメーターが含まれている場合に表示されます。
.FUNCTIONALITY
関数の使用目的です。この内容は、Get-Help コマンドに Get-Help の Functionality パラメー
ターが含まれている場合に表示されます。
.FORWARDHELPTARGETNAME <Command-Name>
指定されたコマンドのヘルプ トピックにリダイレクトします。関数、スクリプト、コマンド
レット、プロバイダーに関するヘルプ トピックなど、任意のヘルプ トピックにユーザーをリ
ダイレクトすることができます。
.FORWARDHELPCATEGORY <Category>
ForwardHelpTargetName 内の項目のヘルプ カテゴリを指定します。
有効な値は、Alias、Cmdlet、HelpFile、Function、Provider、General、FAQ、Glossary、
ScriptCommand、ExternalScript、Filter、または All です。このキーワードを使用して、
同じ名前のコマンドがある場合の競合を回避します。
.REMOTEHELPRUNSPACE <PSSession-variable>
ヘルプ トピックが含まれているセッションを指定します。PSSession が含まれている変数を
入力します。このキーワードは、エクスポートされたコマンドのヘルプ トピックを検索する
ために、Export-PSSession コマンドレットによって使用されます。
.EXTERNALHELP <XML Help File Path>
スクリプトまたは関数に関する XML ベースのヘルプ ファイルのパスを指定します。
Windows Vista およびそれ以降の Windows では、指定された XML ファイルのパスに UI カル
チャ固有のサブディレクトリが含まれていると、Get-Help はそれらのサブディレクトリを再帰
的に検索し、スクリプトまたは関数の名前を持つ XML ファイルを探します。これは、Windows
Vista で導入された言語のフォールバック基準に従って、すべての XML ベースのヘルプ トピッ
クの場合と同じように行われます。
コマンドレット ヘルプの XML ベースのヘルプ ファイル形式の詳細については、MSDN
(Microsoft Developer Network) ライブラリの「コマンドレット ヘルプの記述方法 (英語
ページの可能性があります)」(https://go.microsoft.com/fwlink/?LinkID=123415) を参照
してください。
自動生成コンテンツ
名前、構文、パラメーター一覧、パラメーター属性テーブル、共通パラメーター、および注釈は、
Get-Help コマンドレットによって自動生成されます。
名前:
関数のヘルプ トピックの「名前」セクションは、関数構文の関数名から取得されます。
スクリプトのヘルプ トピックの名前は、スクリプト ファイル名から取得されます。名前
または大文字と小文字の区別を変更するには、関数構文またはスクリプト ファイル名を
変更します。
構文:
ヘルプ トピックの「構文」セクションは、関数またはスクリプトの構文から生成されます。
ヘルプ トピックの構文にパラメーターの .NET Framework 型などの詳細を追加するには、
構文に詳細を追加します。パラメーターの型を指定しない場合、"Object" 型が既定値とし
て挿入されます。
パラメーター一覧:
ヘルプ トピックのパラメーター一覧は、関数またはスクリプトの構文と、Parameter キー
ワードを使用して追加した説明から生成されます。関数パラメーターは、関数またはスクリ
プトの構文に出現するのと同じ順序で、ヘルプ トピックの「パラメーター」セクションに
表示されます。また、パラメーター名のスペルおよび大文字と小文字の区別も構文から取得
され、Parameter キーワードによって指定されたパラメーター名の影響は受けません。
共通パラメーター:
共通パラメーターは、効果がない場合でも、ヘルプ トピックの構文とパラメーター一覧に
追加されます。共通パラメーターの詳細については、「about_CommonParameters」を参照し
てください。
パラメーター属性テーブル:
Get-Help の Full または Parameter パラメーターを使用すると、Get-Help でパラメーター
属性のテーブルが生成され、表示されます。必須、位置、および既定値の属性の値は、関数
またはスクリプトの構文から取得されます。
注釈:
ヘルプ トピックの「注釈」セクションは、関数名またはスクリプト名から自動生成されま
す。内容を変更したり、内容に影響を与えることはできません。
例
例 1: 関数のコメントベースのヘルプ
次のサンプル関数には、コメントベースのヘルプが含まれます。
function Add-Extension
{
param ([string]$Name,[string]$Extension = "txt")
$name = $name + "." + $extension
$name
<#
.SYNOPSIS
指定した名前にファイル名拡張子を追加します。
.DESCRIPTION
指定した名前にファイル名拡張子を追加します。ファイル名または拡張子に任意の文字列を
指定できます。
.PARAMETER Name
ファイル名を指定します。
.PARAMETER Extension
拡張子を指定します。既定値は "Txt" です。
.INPUTS
なし。オブジェクトを Add-Extension にパイプすることはできません。
.OUTPUTS
System.String。Add-Extension は、拡張子の付いた文字列 (ファイル名) を返します。
.EXAMPLE
C:\PS> extension -name "File"
File.txt
.EXAMPLE
C:\PS> extension -name "File" -extension "doc"
File.doc
.EXAMPLE
C:\PS> extension "File" "doc"
File.doc
.LINK
オンライン バージョン: http://www.fabrikam.com/extension.html
.LINK
Set-Item
#>
}
結果は次のとおりです。
C:\PS> get-help add-extension -full
名前
Add-Extension
概要
指定した名前にファイル名拡張子を追加します。
構文
Add-Extension [[-Name] <String>] [[-Extension] <String>]
[<CommonParameters>]
説明
指定した名前にファイル名拡張子を追加します。ファイル名または拡張子に任意の文字列を
指定できます。
パラメーター
-Name
ファイル名を指定します。
必須 false
位置 0
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する
-Extension
拡張子を指定します。既定値は "Txt" です。
必須 false
位置 1
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する
<CommonParameters>
このコマンドレットは、共通パラメーターとして、-Verbose、-Debug、-ErrorAction、
-ErrorVariable、-WarningAction、-WarningVariable、-OutBuffer、および
-OutVariable をサポートします。詳細については、
「get-help about_commonparameters」と入力してヘルプを参照してください。
入力
なし。オブジェクトを Add-Extension にパイプすることはできません。
出力
System.String。Add-Extension は、拡張子の付いた文字列 (ファイル名) を返します。
-------------------------- 例 1 --------------------------
C:\PS> extension -name "File"
File.txt
-------------------------- 例 2 --------------------------
C:\PS> extension -name "File" -extension "doc"
File.doc
-------------------------- 例 3 --------------------------
C:\PS> extension "File" "doc"
File.doc
関連するリンク
オンライン バージョン: http://www.fabrikam.com/extension.html
Set-Item
例 2: 関数構文のパラメーターの説明
この例は、関数構文にパラメーターの説明が挿入されている点を除き、前の例と同じです。
この形式は、簡単な説明を記述する場合に最も便利です。
function Add-Extension
{
param
(
[string]
# ファイル名を指定します。
$name,
[string]
# ファイル名拡張子を指定します。既定値は \"Txt\" です。
$extension = "txt"
)
$name = $name + "."+ $extension
$name
<#
.SYNOPSIS
指定した名前にファイル名拡張子を追加します。
.DESCRIPTION
指定した名前にファイル名拡張子を追加します。ファイル名または拡張子に任意の文字列を指定できます。
.INPUTS
なし。オブジェクトを Add-Extension にパイプすることはできません。
.OUTPUTS
System.String。Add-Extension は、拡張子の付いた文字列 (ファイル名) を返します。
.EXAMPLE
C:\PS> extension -name "File"
File.txt
.EXAMPLE
C:\PS> extension -name "File" -extension "doc"
File.doc
.EXAMPLE
C:\PS> extension "File" "doc"
File.doc
.LINK
オンライン バージョン: http://www.fabrikam.com/extension.html
.LINK
Set-Item
#>
}
例 3: スクリプトのコメントベースのヘルプ
次のサンプル スクリプトには、コメントベースのヘルプが含まれます。
終わりの "#>" と Param ステートメントの間にある空白行に留意してください。Param ステー
トメントを持たないスクリプトでは、ヘルプ トピックの最後のコメントと最初の関数宣言との
間に少なくとも 2 行の空白行が必要です。それらの空白行がない場合、Get-Help はスクリプト
ではなく関数にヘルプ トピックを関連付けます。
<#
.SYNOPSIS
毎月のデータ更新を実行します。
.DESCRIPTION
Update-Month.ps1 スクリプトは、過去 1 か月に生成された新しいデータでレジストリを更新
し、レポートを生成します。
.PARAMETER InputPath
CSV ベースの入力ファイルのパスを指定します。
.PARAMETER OutputPath
CSV ベースの出力ファイルの名前およびパスを指定します。既定では、MonthlyUpdates.ps1
は実行された日付と時刻から名前を生成し、ローカル ディレクトリに出力を保存します。
.INPUTS
なし。オブジェクトを Update-Month.ps1 にパイプすることはできません。
.OUTPUTS
なし。Update-Month.ps1 は出力を生成しません。
.EXAMPLE
C:\PS> .\Update-Month.ps1
.EXAMPLE
C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
.EXAMPLE
C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
-outputPath C:\Reports\2009\January.csv
#>
param ([string]$InputPath, [string]$OutPutPath)
function Get-Data { }
...
次のコマンドはスクリプトのヘルプを取得します。スクリプトは Path 環境変数に指定されている
ディレクトリには格納されていないため、スクリプトのヘルプを取得する Get-Help コマンドで、
スクリプトのパスを指定する必要があります。
PS C:\ps-test> get-help .\update-month.ps1 -full
名前
C:\ps-test\Update-Month.ps1
概要
毎月のデータ更新を実行します。
構文
C:\ps-test\Update-Month.ps1 [-InputPath] <String> [[-
OutputPath] <String>] [<CommonParameters>]
説明
Update-Month.ps1 スクリプトは、過去 1 か月に生成された新しいデータでレジスト
リを更新し、レポートを生成します。
パラメーター
-InputPath
CSV ベースの入力ファイルのパスを指定します。
必須 true
位置 0
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する
-OutputPath
CSV ベースの出力ファイルの名前およびパスを指定します。既定では、
MonthlyUpdates.ps1 は実行された日付と時刻から名前を生成し、ローカル ディレクト
リに出力を保存します。
必須 false
位置 1
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する
<CommonParameters>
このコマンドレットは、共通パラメーターとして、-Verbose、-Debug、-ErrorAction、
-ErrorVariable、-WarningAction、-WarningVariable、-OutBuffer、および
-OutVariable をサポートします。詳細については、
「get-help about_commonparameters」と入力してヘルプを参照してください。
入力
なし。オブジェクトを Update-Month.ps1 にパイプすることはできません。
出力
なし。Update-Month.ps1 は出力を生成しません。
-------------------------- 例 1 --------------------------
C:\PS> .\Update-Month.ps1
-------------------------- 例 2 --------------------------
C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
-------------------------- 例 3 --------------------------
C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -outputPath
C:\Reports\2009\January.csv
関連するリンク
例 4: XML ファイルへのリダイレクト
関数およびスクリプトに関する XML ベースのヘルプ トピックを記述することができます。コメ
ントベースのヘルプは実装が簡単ですが、ヘルプの内容全体をより正確に制御する必要がある場
合や、ヘルプ トピックを複数の言語に翻訳する場合は、XML ベースのヘルプが必要になります。
次の例は、Update-Month.ps1 スクリプトの最初の数行を示しています。このスクリプトでは、
ExternalHelp キーワードを使用して、スクリプトに関する XML ベースのヘルプ トピックのパス
を指定します。
# .ExternalHelp C:\MyScripts\Update-Month-Help.xml
param ([string]$InputPath, [string]$OutPutPath)
function Get-Data { }
...
次の例は、関数で ExternalHelp キーワードを使用する方法を示しています。
function Add-Extension
{
param ([string] $name, [string]$extension = "txt")
$name = $name + "." + $extension
$name
# .ExternalHelp C:\ps-test\Add-Extension.xml
}
例 5: 別のヘルプ トピックへのリダイレクト
次のコードは、Windows PowerShell の組み込み Help 関数の冒頭からの抜粋です。この関数は、
一度に 1 画面ずつヘルプ テキストを表示します。Help 関数の説明は Get-Help コマンドレッ
トのヘルプ トピックに含まれているため、Help 関数では、ForwardHelpTargetName と
ForwardHelpCategory の各キーワードを使用して、ユーザーを Get-Help コマンドレットのヘル
プ トピックにリダイレクトします。
function help
{
<#
.FORWARDHELPTARGETNAME Get-Help
.FORWARDHELPCATEGORY Cmdlet
#>
[CmdletBinding(DefaultParameterSetName='AllUsersView')]
param(
[Parameter(Position=0, ValueFromPipelineByPropertyName
=$true)] [System.String]
${Name},
...
この機能は次のコマンドで使用されます。
C:\PS> get-help help
名前
Get-Help
概要
Windows PowerShell のコマンドレットと概念に関する情報を表示します。
...
関連項目
about_Functions
about_Functions_Advanced_Parameters
about_Scripts
「コマンドレット ヘルプの記述方法 (英語ページの可能性があります)」
(https://go.microsoft.com/fwlink/?LinkID=123415)