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:
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:
$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