2011-07-21 42 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 

要渲染的幫助,這個劇本,我一個PowerShell會話,其中write-text.ps1是這個腳本的名稱中執行以下命令。

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

不,參數(例如,類型)的幾個屬性從代碼中提取出來,並與開發人員的doc註釋一起集成到幫助輸出中。默認值應該是其中之一 - 對開發人員來說是完全透明的 - 所以省略它並不會簡化寫入doc註釋。 –

3

基於腳本的幫助可能很挑剔,可能很簡單,因爲您已將幫助文本中的變量大寫,但不包含該變量本身。一個長鏡頭,我知道......

,我寧願是一個選擇,但旁邊的參數說明:

<# 
.SYNOPSIS 
MumbleMumble 

.DESCRIPTION 
Even more MumbleMumble 

.EXAMPLE 
PS> MumbleMumble 
#> 

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

    ... 
} 

我喜歡這種方法,因爲它把旁邊的描述參數 - 和因爲它似乎工作:)。