我做了一个简单的PowerShell脚本有两个参数。如果我尝试执行没有参数的脚本,它可以正常工作。如果我试图用两个参数中的任何一个来执行它,它就可以正常工作。当我尝试用两个参数运行该脚本,我得到以下错误:可以通过PowerShell脚本两个参数之一,但不是两个参数在同一时间
Parameter set cannot be resolved using the specified named parameters.
它还在那里大约AmibiguousParameterSet珍闻。
我的脚本的参数部分看起来是这样的:
[CmdletBinding(DefaultParameterSetName="None")]
param(
[Parameter(Mandatory=$False, ParameterSetName="BuildExclude")]
[ValidateSet('proj1','proj2', 'proj3', 'proj4')]
[string[]]$BuildExclude,
[Parameter(Mandatory=$False, ParameterSetName="SkipDbRestore")]
[switch]$SkipDbRestore
)
这些用法工作:
.\RunScript.ps1 -BuildExclude proj1, proj2
.\RunScript.ps1 -SkipDbRestore
.\RunScript.ps1
这种用法不会为上述工作的原因所在:
.RunScript.ps1 -BuildExclude proj1, proj2 -SkipDbRestore
即使我颠倒了参数的顺序,它也不起作用。我尝试添加参数位置,使BuildExclude = 0和SkipDbRestore = 1,希望我能够让他们一起工作,如果我至少保持他们的顺序。但是这给了我相同的模糊性错误。我错过了什么?理想情况下,我希望能够以任何顺序使用参数调用脚本,并让它做正确的事情。