動的パラメータを持つ関数がある場合、ユーザーがGet-Help
を実行しても動的パラメータが表示されるようにコメントベースのヘルプを追加するにはどうすればよいですか?
私はGet-Help Test-DynamicParam -Full
を実行する場合、私は、このようなコメントベースのヘルプを追加する場合、ここに私の関数は、任意のコメントベースのヘルプコメントベースのヘルプの追加動的パラメータのGet-Help
function Test-DynamicParam{
[CmdletBinding(PositionalBinding=$false)]
param(
[Parameter(Mandatory=$false)][string]$NamedStaticParam1,
[Parameter(Mandatory=$false)][string]$NamedStaticParam2
)
dynamicparam {
$paramDictionary = new-object -Type System.Management.Automation.RuntimeDefinedParameterDictionary
$paramname = "NamedDynamicParam1"
$values = 'foo','bar' #would normally get these dynamically
$attributes = new-object System.Management.Automation.ParameterAttribute
$attributes.ParameterSetName = "__AllParameterSets"
$attributes.Mandatory = $true
$attributeCollection = new-object -Type System.Collections.ObjectModel.Collection[System.Attribute]
$attributeCollection.Add($attributes)
$ValidateSet = new-object System.Management.Automation.ValidateSetAttribute($values)
$attributeCollection.Add($ValidateSet)
$dynParam = new-object -Type System.Management.Automation.RuntimeDefinedParameter($paramname, [string], $attributeCollection)
$paramDictionary.Add($paramname, $dynParam)
return $paramDictionary
}
process{
$PSBoundParameters.NamedDynamicParam1
$PSBoundParameters.NamedStaticParam1
$PSBoundParameters.NamedStaticParam2
}
}
なしで、それは私に
NAME
Test-DynamicParam
SYNTAX
Test-DynamicParam -NamedDynamicParam1 {foo | bar} [-NamedStaticParam1 <string>] [-NamedStaticParam2 <string>] [<CommonParameters>]
PARAMETERS
-NamedDynamicParam1 <string>
Required? true
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? true
-NamedStaticParam1 <string>
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
-NamedStaticParam2 <string>
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
None
OUTPUTS
System.Object
ALIASES
None
REMARKS
None
を与えるが、:
function Test-DynamicParam{
<#
.SYNOPSIS
A test for the dynamic parameter list populating
.DESCRIPTION
Using this for Stack Overflow
.NOTES
Adding comment-based help breaks the parameter and syntax help
#>
...
ランニングGet-Help Test-DynamicParam -Full
は、構文セクションとPARの両方の静的パラメータのみを示しますAMETERSセクション:
NAME
Test-DynamicParam
SYNOPSIS
A test for the dynamic parameter list populating
SYNTAX
Test-DynamicParam [-NamedStaticParam1 <String>] [-NamedStaticParam2 <String>] [<CommonParameters>]
DESCRIPTION
Using this for Stack Overflow
PARAMETERS
-NamedStaticParam1 <String>
Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-NamedStaticParam2 <String>
Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
OUTPUTS
NOTES
Adding comment-based help breaks the parameter and syntax help
RELATED LINKS
は私も同じ結果に、コメントベースのヘルプに.PARAMETER NamedDynamicParam1
を追加しようとしています。興味深いことに、これは関数の使用には影響しません。ちょうどGet-Help
部分です。私はこれがバグだと思っています。ヘルプを追加するとヘルプが機能的に削除されても意味がないので、