derhoeppi

Powershell If Statement mit mehreren Bedingungen

Hallo,
ich möchte ein If Statement nutzen um zu prüfen, ob mehrere Arrays leer sind. Das scheinbare Problem ist jedoch das ein Array nach der Initialisierung und der Wertezuweisung kein Array mehr ist. Die Ausgabe von GetType lautet: "You cannot call a method on a null-valued expression."

Folgender Code wurde erstellt:
$a = @()
$b = @()
$c = @()
$d = @()
$c = Compare-Object $RefArray $DiffArray | ?{$_.SideIndicator -eq '=>'}   
$d = Compare-Object $RefArray $DiffArray | ?{$_.SideIndicator -eq '<='}   
$a = $c.InputObject
$b = $d.InputObject
if (!$a -or !$b) {
write-host "Ein Array ist leer"  
}
else {
write-host "Tue etwas anderes"  
}

Das Problem ist, dass $a oder $b unter Umständen leer ist. Im konkreten Fall besitzt $a einige Werte, aber $d welches dann $b befüllen soll keinen einzigen. Deshalb kommt es zu der Meldung. Wie kann ich das Lösen?

Gruß
derhoeppi
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 282489

Url: https://administrator.de/forum/powershell-if-statement-mit-mehreren-bedingungen-282489.html

Ausgedruckt am: 13.07.2025 um 15:07 Uhr

114757
Lösung 114757 10.09.2015 aktualisiert um 13:31:26 Uhr
Parameter -Passthru bei Compare-Object nutzen... und mit $a.length in der If-Bedingung prüfen ...

Gruß jodel32