2011-07-21 5 views
5

私は、テキストを入力として受け入れ、それをホストに書き込む次の単純なスクリプトを持っています。このスクリプトのヘルプをレンダリングするためにPowershell 2.0でヘルプページにスクリプトのデフォルトパラメータ値を表示するためには何が必要ですか?

<# 
.SYNOPSIS 
    Writes the input string to the host. 
.PARAMETER Text 
    The text to write to the host. 
#> 

param([string]$text = "hello world!") 
Write-Host $text 

、私はwrite-text.ps1このスクリプトの名前であるPowerShellセッション内で以下のコマンドを実行します。次の出力で

get-help .\write-text.ps1 -full 

、私は助けに記載されているスクリプトのパラメータのデフォルト値を見ることを期待しています - しかし、私はしていない:私は追加する

PARAMETERS 
    -text <String> 
     The text to write to the host. 

     Required?     false 
     Position?     1 
     Default value 
     Accept pipeline input?  false 
     Accept wildcard characters? 

何が必要ですかヘルプエンジンがデフォルトのパラメータ値を表示するようにこのスクリプトを変更しますか?

答えて

5

コメントベースのヘルプを使用してデフォルト値を表示することはできません。 MAMLのヘルプファイルを作成する必要があります。

+0

これは実際にはMSDNで文書化されています(それで、それは機能ですか?:-)。 [about_Comment_Based_Help](http://technet.microsoft.com/en-us/library/dd819489.aspx)のトラブルシューティングを参照してください。 –

+0

その理由は、簡単なコメントベースのヘルプを書くだけだったと思います。 – JasonMArcher

+0

いいえ、パラメータのいくつかのプロパティ(タイプなど)がコードから取得され、開発者のドキュメントコメントと一緒にヘルプ出力に統合されます。デフォルト値はこれらのうちの1つでなければなりません。つまり、開発者にとっては完全に透過的です。したがって、省略してもdoc-commentsの記述は簡単になりません。 –

3

スクリプトベースのヘルプは、ヘルプテキスト内の変数を大文字にしただけの単純なものかもしれませんが、その変数自体はありません。ロングショット、私が知っている...

私が好む代替にあるが、次のパラメータの説明:

<# 
.SYNOPSIS 
MumbleMumble 

.DESCRIPTION 
Even more MumbleMumble 

.EXAMPLE 
PS> MumbleMumble 
#> 

function MumbleMumble 
{ 
    param 
    (
     #The in-parameter for MumbleMumble, as text 
     $text 
    ) 

    ... 
} 

それは次のパラメータへの説明を置くので、私はこのアプローチが好き - とそれは働くように思われるからです:)。