我做了一個簡單的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,希望我能夠讓他們一起工作,如果我至少保持他們的順序。但是這給了我相同的模糊性錯誤。我錯過了什麼?理想情況下,我希望能夠以任何順序使用參數調用腳本,並讓它做正確的事情。