1
考慮以下功能:如何以編程方式確定函數參數的默認值?
function f {param($x = 42)}
$x
有42缺省值假設我有一堆的功能,我想以編程的測試,除其他事項外,它的參數,其默認值。其他的事情我能夠使用返回的使用以下命令之一的對象發現:
Get-Item function:/f | % Parameters | % x | % Attributes
Get-Help f | % Parameters | % parameter
這些命令的輸出如下:
Position : 0
ParameterSetName : __AllParameterSets
Mandatory : False
ValueFromPipeline : False
ValueFromPipelineByPropertyName : False
ValueFromRemainingArguments : False
HelpMessage :
HelpMessageBaseName :
HelpMessageResourceId :
DontShow : False
TypeId : System.Management.Automation.ParameterAttribute
name : x
required : false
pipelineInput : false
isDynamic : false
parameterSetName : (All)
parameterValue : Object
type : @{name=Object}
position : 0
aliases : None
似乎沒有被任何線索默認值。
如何以編程方式確定函數參數的默認值?
'$((Get-Item獲取函數:/ F).ScriptBlock.Ast.Body.ParamBlock.Parameters.Where {$ _ Name.VariablePath.UserPath -eq 'X'})DefaultValue.SafeGetValue。 ()' – PetSerAl
@PetSerAl這是值得一口氣投票。 – LotPings
謝謝@PetSerAl。這樣可行。你能否讓它成爲答案,以便我能糾正錯別字? – alx9r