例:假设我有
[Parameter(Mandatory=$true)]
[ValidateSet("UP","DOWN")]
$Direction,
[Parameter(Mandatory=$true)]
[string]$AssertBytes,
[ValidateScript({
if($_ -notmatch "(\.json)"){
throw "The file specified in the path argument must be of type json"
}
return $true
})]
$JsonMappingsFilePath,
如果我有$AssertBytes等于true,那么我希望$JsonMappingsFilePath是强制的。否则我希望它被忽略。
这似乎行不通:
[Parameter(Mandatory=$true)]
[ValidateSet("UP","DOWN")]
$Direction,
[Parameter(ParameterSetName='AssertBytes', Mandatory=$False)]
[switch]$AssertBytes,
[Parameter(ParameterSetName='AssertBytes', Mandatory=$False)]
[ValidateScript({
if($_ -notmatch "(\.json)"){
throw "The file specified in the path argument must be of type json"
}
return $true
})]
$JsonMappingsFilePath,
1条答案
按热度按时间bq3bfh9z1#
使
AssertBytes
成为 * 两个不同参数集 * 的成员--一个是强制的,另一个不是--然后使用CmdletBinding
属性将参数是可选的那一个指定为默认参数集: