我有以下内容,它不允许启用两个变量(布尔值为真):
If (($Variable1) -and ($Variable2)) {
Write-Warning "Both variables have been enabled. Modify script to enable just one."
Pause
Break
}
这很好用,但是,如果存在4个可能的变量,我怎么能确保只启用一个?我想的是 - 和&组合-OR?
答案 0 :(得分:3)
您可以添加布尔值并检查它们的计数:
If (([bool]$Variable1 + [bool]$Variable2 + [bool]$Variable3) -ne 1) {
...
}
但当然你必须确保这些实际上可以转换为布尔值。
<击> 这就是“独家或”(xor)的用途:
If ($Variable1 -xor $Variable2 -xor $Variable3) {
....
}
击> 答案 1 :(得分:3)
无法想出一种避免使用计数器的方法。您有来检查每个变量的值,并计算$true
的数量。
$trueCount = 0
($variable1, $variable2, $variable3, $variable4) | % { if ($_ ) { $trueCount++} }
if ($trueCount -eq 1) {
write-host "only one variable true"
}
else {
write-host "condition not met"
}