我在各种模块中为许多功能带来了许多动态参数。
但是,动态参数的.PARAMETER注释块未显示在get-help中。
.PARAMETER
Some details of the dynamic parameter that is defined in dynamicParam { block}
在通过此类函数调用get-help cmdlet时,是否有任何解决方法可以为用户提供动态参数详细信息?
谢谢!
答案 0 :(得分:0)
如果你通过在后面用空格复制参数名称来作弊,你可以到达那里:
param ([string]${Name })
DynamicParam{
#insert usual stuff here
New-Object System.Management.Automation.RuntimeDefinedParameter(
'Name', [string], $attributeCollection
)
# more stuff
}
begin
{
$name = $PSBoundParamters.'Name '
}
这意味着您使用Get-Help 获取参数名称,但不是实际文本。这是一个可怕的黑客,但它会让你到达那里...
答案 1 :(得分:-1)
HelpMessage
上有一个System.Management.Automation.ParameterAttribute
属性,可用于在动态参数中设置帮助文字:
# Create a collection of attributes
$AttributeCollection = New-Object System.Collections.ObjectModel.Collection[System.Attribute]
$ParameterAttribute = New-Object System.Management.Automation.ParameterAttribute
$ParameterAttribute.Mandatory = $true
$ParameterAttribute.Position = 0
$ParameterAttribute.HelpMessage = "YOUR_HELP_MESSAGE"
# Add the attributes to the attributes collection
$AttributeCollection.Add($ParameterAttribute)