Лично я не принимаю пробел ($ STR3) как «не пустой».
Когда переменная, которая содержит только пробелы, передается параметру, часто возникает ошибка, что значение параметра может не быть «$ null», вместо того, чтобы сказать, что это может быть не пробел, некоторые команды удаления могут удалить корневую папку вместо подпапка, если имя подпапки является «пробелом», во многих случаях причина не принимать строку, содержащую пробелы.
Я считаю, что это лучший способ сделать это:
$STR1 = $null
IF ([string]::IsNullOrWhitespace($STR1)){'empty'} else {'not empty'}
пустой
$STR2 = ""
IF ([string]::IsNullOrWhitespace($STR2)){'empty'} else {'not empty'}
пустой
$STR3 = " "
IF ([string]::IsNullOrWhitespace($STR3)){'empty !! :-)'} else {'not Empty :-('}
Слейте !! :-)
$STR4 = "Nico"
IF ([string]::IsNullOrWhitespace($STR4)){'empty'} else {'not empty'}
Не пусто