2011-07-21 12 views
5

Ben girdi olarak metni kabul eder ve ev sahibi yazar Aşağıdaki basit komut dosyası var. Powershell 2.0'ın bir komut dosyasının varsayılan parametre değerini yardım sayfasında göstermesi için ne gerekir?

<# 
.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 

Ben write-text.ps1 bu komut dosyası adıdır bir PowerShell oturumunda, içinde aşağıdaki komutu yürütün bu komut dosyası için yardım merkezi haline getirmek. Aşağıdaki çıktıda
get-help .\write-text.ps1 -full 

, yardım listelenen scriptin parametrenin varsayılan değerini görmek için bekliyorum - ama yok: ne yapıyoruz

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

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

ben eklemek gerekir ya Bu komut dosyasında, varsayılan parametre değerini oluşturmak için yardım motoru için değişiklik yapın.

cevap

5

Sen comment tabanlı yardım kullanarak varsayılan bir değer gösteremez. Bunu yapmak için bir MAML yardım dosyası oluşturmanız gerekir.

+0

Bu aslında böylece bir özellik yapar? :-) (MSDN üzerinde belgelenmiştir. [About_Comment_Based_Help] adresinden Giderme altına bakın (http://technet.microsoft.com/en-us/library/dd819489.aspx) –

+0

Bunun nedeni sadece yazmak için basit açıklama tabanlı yardım tutmak olduğunu düşünüyorum. – JasonMArcher

+0

Hayır, parametrelerin çeşitli özellikleri (örneğin tip) geliştirici doc-yorumlarla birlikte yardım çıkışı içine _from code_ aldı ve entegre edilmiştir. Varsayılan değer, bunlardan biri olmalıdır - geliştiriciye tamamen şeffaftır - bu nedenle, doküman yorumlama, doküman yazımının yorumlanmasını kolaylaştırmaz. –

3

Senaryo tabanlı yardım o değişkeni kendisi yardım metninde değişkeni harfle, ancak henüz bu kadar basit olabilir, seçici olabilir. Bir ihtimal, biliyorum ...

Ben etmektir tercih alternatif ama parametrenin yanındaki açıklaması:

<# 
.SYNOPSIS 
MumbleMumble 

.DESCRIPTION 
Even more MumbleMumble 

.EXAMPLE 
PS> MumbleMumble 
#> 

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

    ... 
} 

Ben parametrenin yanındaki açıklama koyar çünkü bu yaklaşımı gibi - ve çünkü işe yaradığı için :).