Powershell 2.0需要什么来呈现脚本';帮助页面中的默认参数值?

Powershell 2.0需要什么来呈现脚本';帮助页面中的默认参数值?,powershell,powershell-2.0,default-value,Powershell,Powershell 2.0,Default Value,我有以下简单的脚本,它接受文本作为输入并将其写入主机 <# .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 在以下输出中,我希望看到帮助中列出的脚本参数的默认值——但我没有: PARAMETERS -te

我有以下简单的脚本,它接受文本作为输入并将其写入主机

<#
.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
在以下输出中,我希望看到帮助中列出的脚本参数的默认值——但我没有:

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

        Required?                    false
        Position?                    1
        Default value
        Accept pipeline input?       false
        Accept wildcard characters?
参数
-正文
要写入主机的文本。
必修的?假的
位置?1.
默认值
接受管道输入?假的
是否接受通配符?

要使帮助引擎呈现默认参数值,我需要在此脚本中添加或更改哪些内容?

您不能使用基于注释的帮助显示默认值。您需要制作一个MAML帮助文件来完成这项工作。

基于脚本的帮助可能很挑剔,可能很简单,因为您在帮助文本中将变量大写,而不是该变量本身。我知道,这是一次远射

我更喜欢的另一种选择是,但参数旁边的描述:

<#
.SYNOPSIS
MumbleMumble

.DESCRIPTION
Even more MumbleMumble

.EXAMPLE
PS> MumbleMumble
#>

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

   ...
}
MumbleMumble
#>
功能性腮腺炎
{
param
(
#MumbleMumble的in参数,作为文本
$text
)
...
}

我喜欢这种方法,因为它将描述放在参数旁边,而且似乎有效:)。

这实际上是在MSDN上记录的(这是否使它成为一种功能?:-)。在“疑难解答”下查看,我认为这样做的原因是使基于注释的帮助易于编写。不,参数的几个属性(例如类型)是从代码中提取的,并与开发人员的文档注释一起集成到帮助输出中。默认值应该是其中之一——对开发人员完全透明——因此省略它不会简化文档注释的编写。默认值和通配符接受是在MAML帮助中定义的,而不是在代码中定义的。在代码中使用它是没有用的,因为它们不是PowerShell引擎提供的功能。基于注释的帮助等同于MAML帮助。但为了简化,他们只在基于注释的帮助中实现了参数描述。
<#
.SYNOPSIS
MumbleMumble

.DESCRIPTION
Even more MumbleMumble

.EXAMPLE
PS> MumbleMumble
#>

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

   ...
}