我试图指定方法的第三个参数的值,同时仍然让方法中的第二个参数默认。
我能够将其拼凑起来以使其正常工作,但我希望其他人有更好的解决方案
$o=[PSCustomObject]@{};
Add-Member -MemberType ScriptMethod -InputObject $o -Name 'WrapText' -Value {
param($S,$Open='"',$Close)
if($Close){
"$Open$S$Close"
}else{
"$Open$S$Open"
}
}
$DefaultValues = @{};
$o.WrapText.Script.Ast.ParamBlock.Parameters | %{
$DefaultValues.($_.Name.ToString()) = $_.DefaultValue.Value
}
$o.WrapText('Some Text',$DefaultValues.'$Open','|')