動態參數我有一個動態的參數有問題:問題在PowerShell中
function get-foo {
[cmdletBinding()]
param(
[parameter(Mandatory=$true)]
$Name
)
DynamicParam {
if($Name -like 'c*') {
$Attributes = New-Object 'Management.Automation.ParameterAttribute'
$Attributes.ParameterSetName = '__AllParameterSets'
$Attributes.Mandatory = $false
$AttributesCollection = New-Object 'Collections.ObjectModel.Collection[Attribute]'
$AttributesCollection.Add($Attributes)
$Dynamic = New-Object -TypeName 'Management.Automation.RuntimeDefinedParameter' -ArgumentList @('pattern','system.object',$AttributeCollection)
$ParamDictionary = New-Object 'Management.Automation.RuntimeDefinedParameterDictionary'
$ParamDictionary.Add("pattern", $Dynamic)
$ParamDictionary
}
}
end {
if($test) {
return $Name -replace '\b\w',$test
}
$name
}
}
它檢測到我的模式參數,但它返回一個錯誤;
ps c:\> get-foo -Name cruze -pattern 123
get-foo : Le paramètre « pattern » ne peut pas être spécifié dans le jeu de paramètres « __AllParameterSets
».
Au niveau de ligne : 1 Caractère : 8
+ get-foo <<<< -Name cruze -pattern u
+ CategoryInfo : InvalidArgument: (:) [get-foo], ParameterBindingException
+ FullyQualifiedErrorId : ParameterNotInParameterSet,get-foo
如何解決問題?
您能否翻譯錯誤信息? –
@Roman Kuzmin:無法在參數集「__ AllParameterSets – Why
」中指定參數「pattern」對不起,我打算通過添加翻譯來編輯您的問題 –