function f {
param(
[Parameter(ParameterSetName='A', Position=0)]
[int] $Num,
[Parameter(ParameterSetName='A', Position=1)]
[Parameter(ParameterSetName='B', Position=0)]
[scriptblock] $Script
)
}
f 123 {}
f {}
为什么第二次调用的参数集无法解析?似乎完全可以解决。至少,似乎有足够的信息。
2条答案
按热度按时间zf9nrax11#
您需要添加
DefaultParameterSetName
以避免歧义。在第二个函数调用时,PowerShell无法判断您是想使用参数集A
还是B
。oo7oh9g92#
使用
Mandatory
来明确某些参数对于某些参数集是强制性的。