遵循目标(针对参数集)。我是关于参数集概念的新手,我无法弄明白。
$opt1
并切换$opt2
选择TOGETHER,不行!$opt1
,确定!$opt2
,确定!function Mytest {
Param(
[Parameter(Mandatory=$false)][string]$intro="ParameterSet Practice",
[Parameter(Mandatory=$false, ParameterSetName='option1')][switch]$opt1,
[Parameter(Mandatory=$false, ParameterSetName='option2')][switch]$opt2
)
Write-Verbose "$intro" -Verbose
if ($opt1) {
"You picked option 1!"
} elseif ($opt2) {
"You picked option 2!"
} else {
"You didn't pick an option!"
}
}
前3个场景除最后一个外都有效。请帮助我在哪里弄错了。
答案 0 :(得分:0)
只有在我发布问题后,我才知道。我不知道我必须设置默认参数,解决方案如下:
function Mytest {
param(
[CmdletBinding(DefaultParameterSetName="noOption")]
...
}
将上面的行添加到代码中。第四个条件“没有选择开关,OK!”很满意。