1

これは以前に一度投稿されましたが、提案された解決策は私の問題を解決しませんでした。スクリプトを作成していて、パラメーターの 1 つを必須にしたいのですが、以前のパラメーターの 1 つに特定の値がある場合にのみ必須にしたいのです。

例:

param([Parameter(Mandatory=$true, Position=0)]
  [ValidateSet("Add","Delete")]
  [string]$Command,

  [Parameter(Mandatory=$true)]
  [string]$Subject
)

Command パラメーターの値が「Add」の場合にのみ、Subject パラメーターが必要になるようにします。

ParameterSetName 値を使用してみましたが、うまくいかないようです。

4

2 に答える 2

2

次のようにパラメーターを実行してみてください。

param (
    [Parameter(ParameterSetName="Add")][switch]$Add,
    [Parameter(ParameterSetName="Delete")][switch]$Delete,
    [Parameter(ParameterSetName="Add",Mandatory=$true)] [Parameter(ParameterSetName="Delete")] [string]$Subject
)

「追加」スイッチがある場合、サブジェクトは必須であり、「削除」スイッチがある場合、サブジェクト パラメータはオプションです。

于 2013-06-27T20:19:09.597 に答える