Kürzlich musste ich ein Powershell Script schreiben, das zu Anfang die Argumente prüfen sollte. Das Script kann mit 3 Parameter aufgerufen werden: -Install, -Uninstall und -Action
Von diesen 3 Parameter darf jeweils nur einer gleichzeitig verwendet werden, also habe ich ein paar logische Operatoren zusammen verknüpft und voilà dies ist das Ergebnis:

1
2
3
4
5
if(($Install -and $Uninstall -and $Action) -or -not ($Install -xor $Action -xor $Uninstall))
{
	Write-Host -ForegroundColor Red "Invalid Parameters please read script header for usage"
	exit(1)
}

Die Wahrheitstabelle für ein XOR Gatter mit 3 Inputs:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$a = $true,$false,$false
$a[0] -xor $a[1] -xor $a[2] #true
$a = $true,$true,$false
$a[0] -xor $a[1] -xor $a[2] #false
$a = $true,$true,$true
$a[0] -xor $a[1] -xor $a[2] #true
$a = $true,$false,$true
$a[0] -xor $a[1] -xor $a[2] #false
$a = $false,$true,$true
$a[0] -xor $a[1] -xor $a[2] #false
$a = $false,$false,$true
$a[0] -xor $a[1] -xor $a[2] #true
$a = $false,$false,$false
$a[0] -xor $a[1] -xor $a[2] #false
$a = $false,$true,$false
$a[0] -xor $a[1] -xor $a[2] #true

3InputXOR.png