レジストリ キーの値を変更する PowerShell 関数があります。コード:
param(
[Parameter()] [switch]$CreateNewChild,
[Parameter(Mandatory=$true)] [string]$PropertyType
)
これにはパラメーター「CreateNewChild」があり、そのフラグが設定されている場合、関数はキー プロパティが見つからなくても作成します。パラメータ「PropertyType」は必須である必要がありますが、「CreateNewChild」フラグが設定されている場合のみです。
問題は、別のパラメーターが指定されている場合にのみ、パラメーターを必須にする方法です。
OK、私はそれで遊んでいます。そして、これは機能します:
param(
[Parameter(ParameterSetName="one")]
[switch]$DoNotCreateNewChild,
[string]$KeyPath,
[string]$Name,
[string]$NewValue,
[Parameter(ParameterSetName="two")]
[switch]$CreateNewChild,
[Parameter(ParameterSetName="two",Mandatory=$true)]
[string]$PropertyType
)
ただし、これは、$KeyPath、$Name、および $NewValue が必須でなくなったことを意味します。「1 つの」パラメーター セットを必須に設定すると、コードが壊れます ( 「パラメーター セットを解決できません」というエラー)。これらのパラメータ セットは混乱を招きます。方法があると確信していますが、それを行う方法がわかりません。