2つのパラメータを持つ簡単なpowershellスクリプトを作成しました。引数なしでスクリプトを実行しようとするとうまくいきます。私が2つの引数のいずれかでそれを実行しようとすると、正常に動作します。私は両方の引数を指定してスクリプトを実行しようとすると、私は次のエラーを取得する:PowerShellスクリプトを2つの引数の1つに渡すことはできますが、同時に両方の引数を渡すことはできません
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を作る、パラメータ位置に追加しようとしました。しかし、それは私に同じあいまいなエラーを与えます。私は何が欠けていますか?理想的には、任意の順序でパラメータを指定してスクリプトを呼び出すことができ、正しいことをしたいと思っています。