カスタムc#コマンドレットを開発しました。これには3つのパラメーターがあり(すべて文字列です)、必須ではありません。それらのうちの2つはparameterset1に属し、3つ目はparameterset2に属します。ユーザーが両方のパラメーターセットからパラメーターを指定すると、それらが同じパラメーターセットに属していないというメッセージが表示されます。しかし、私は2つの問題を抱えています。
- ユーザーがパラメーターを指定しない場合(いずれも必須ではないため)、エラーがスローされます。指定された名前付きパラメーターを使用してパラメーターセットを解決することはできません。
- ユーザーが最初のパラメーターを指定して-と入力し、タブを押すと2番目のパラメーターのみが表示されます。これは、1番目と2番目が同じパラメーターセットに含まれているが、2番目と3番目が正しく表示されていないためです。同様に、ユーザーが最初に3番目のパラメーターを入力した場合でも、1番目と2番目が表示されます。
パラメータを定義したコードは次のとおりです。
[System.Management.Automation.Cmdlet(System.Management.Automation.VerbsCommon.Get, "Customcmd")]
public class Get_Customcmd: System.Management.Automation.PSCmdlet
{
[System.Management.Automation.Parameter(Mandatory = false, ParameterSetName = "Set1")]
public string Param1;
[System.Management.Automation.Parameter(Mandatory = false, ParameterSetName = "Set1")]
public string Param2;
[System.Management.Automation.Parameter(Mandatory = false, ParameterSetName = "Set2")]
public string Param2;
protected override void ProcessRecord()
{
誰かが私が何かを逃したと私に言うことができますか?パラメータに属性を追加する必要がありますか?