Ich persönlich akzeptiere ein Leerzeichen ($STR3) nicht als "nicht leer".
Wenn eine Variable, die nur Leerzeichen enthält, an einen Parameter übergeben wird, kommt oft die Fehlermeldung, dass der Wert des Parameters nicht "$null" sein darf, anstatt zu sagen, dass es sich nicht um ein Leerzeichen handeln darf. Einige Entfernungsbefehle entfernen möglicherweise einen Stammordner anstelle eines Unterordners, wenn der Name des Unterordners ein "Leerzeichen" ist, ein Grund mehr, in vielen Fällen keine Zeichenkette mit Leerzeichen zu akzeptieren.
Ich finde, das ist der beste Weg, dies zu erreichen:
$STR1 = $null
IF ([string]::IsNullOrWhitespace($STR1)){'empty'} else {'not empty'}
Leere
$STR2 = ""
IF ([string]::IsNullOrWhitespace($STR2)){'empty'} else {'not empty'}
Leere
$STR3 = " "
IF ([string]::IsNullOrWhitespace($STR3)){'empty !! :-)'} else {'not Empty :-('}
Leer!!! :-)
$STR4 = "Nico"
IF ([string]::IsNullOrWhitespace($STR4)){'empty'} else {'not empty'}
Nicht leer