¿Cómo puedo comprobar si una cadena es nula o está vacía en PowerShell?
¿Existe una función similar incorporada IsNullOrEmpty
para verificar si una cadena es nula o está vacía en PowerShell?
No pude encontrarlo hasta ahora y si hay una forma integrada, no quiero escribir una función para esto.
Aceptado
Ustedes están haciendo esto demasiado difícil. PowerShell maneja esto de manera bastante elegante, por ejemplo:
> $str1 = $null
> if ($str1) { 'not empty' } else { 'empty' }
empty
> $str2 = ''
> if ($str2) { 'not empty' } else { 'empty' }
empty
> $str3 = ' '
> if ($str3) { 'not empty' } else { 'empty' }
not empty
> $str4 = 'asdf'
> if ($str4) { 'not empty' } else { 'empty' }
not empty
> if ($str1 -and $str2) { 'neither empty' } else { 'one or both empty' }
one or both empty
> if ($str3 -and $str4) { 'neither empty' } else { 'one or both empty' }
neither empty
Puedes utilizar el IsNullOrEmpty
método estático:
[string]::IsNullOrEmpty(...)
Además, [string]::IsNullOrEmpty
para verificar si hay valores nulos o vacíos, puede convertir una cadena a un booleano explícitamente o en expresiones booleanas:
$string = $null
[bool]$string
if (!$string) { "string is null or empty" }
$string = ''
[bool]$string
if (!$string) { "string is null or empty" }
$string = 'something'
[bool]$string
if ($string) { "string is not null or empty" }
Producción:
False
string is null or empty
False
string is null or empty
True
string is not null or empty
Si es un parámetro en una función, puedes validarlo ValidateNotNullOrEmpty
como puedes ver en este ejemplo:
Function Test-Something
{
Param(
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$UserName
)
#stuff todo
}