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