Búsqueda de sitios web

Cómo comprobar si un elemento no existe en una matriz en PowerShell


¿Necesita comprobar si un elemento no existe en una matriz de PowerShell? En este tutorial de PowerShell, explicaré cómo verificar si un elemento no existe en una matriz en PowerShell usando varios métodos con ejemplos.

Para comprobar si un elemento no existe en una matriz en PowerShell, utilice el operador -notcontains. Por ejemplo, $doesNotExist=$array -notcontains 'item' devolverá $true si 'item' no está presente en la matriz $array. Este operador realiza una búsqueda que distingue entre mayúsculas y minúsculas; para una comprobación que no distinga entre mayúsculas y minúsculas, utilice -inotcontains en su lugar.

Comprobar si un elemento no existe en una matriz en PowerShell

Veamos varios métodos sobre cómo verificar si un elemento no existe en una matriz en PowerShell.

Usando el operador -contiene

El operador -contains en PowerShell se usa para verificar si una matriz contiene un valor específico. Para comprobar si un elemento no existe en una matriz, puede utilizar el operador -contains en combinación con el operador lógico not, !.

Aquí hay un ejemplo:

$array = 'apple', 'banana', 'cherry'
$item = 'mango'

if (-not ($array -contains $item)) {
    Write-Host "The item '$item' does not exist in the array."
}

En este ejemplo, el script comprueba si $item ('mango') no está en $array. Dado que 'mango' no es un elemento de $array, la condición se evalúa como $true y se muestra el mensaje.

Puede consultar la captura de pantalla a continuación para ver el resultado después de ejecutar el script de PowerShell usando Visual Studio Code.

Usando el operador -notcontains

Alternativamente, PowerShell ofrece el operador -notcontains, que es la negación directa de -contains. Devuelve $true si la matriz no contiene el elemento especificado.

Aquí está el ejemplo completo:

$array = 'apple', 'banana', 'cherry'
$item = 'mango'

if ($array -notcontains $item) {
    Write-Host "The item '$item' does not exist in the array."
}

Esto hace lo mismo que el primer ejemplo pero usa -notcontains para un enfoque más sencillo y legible.

Usando el método .Contains()

El método .Contains() es un método de [System.Collections.ArrayList] o [System.Collections.Generic.List[T]] tipos en .NET, que PowerShell puede usar para verificar si una matriz (o más exactamente, una lista) contiene un valor particular.

Para utilizar este método, primero debe convertir su matriz a un objeto [System.Collections.ArrayList] o crear un objeto [System.Collections.Generic.List[T]] .

Aquí tienes un ejemplo completo:

[array]$array = @('apple', 'banana', 'cherry')
$item = 'mango'

if (-not $array.Contains($item)) {
    Write-Host "The item '$item' does not exist in the array."
}

Recuerde que este método distingue entre mayúsculas y minúsculas y la matriz debe convertirse a [array] o un tipo de lista para que el método .Contains() esté disponible.

Usar funciones personalizadas

Si se encuentra buscando repetidamente elementos inexistentes en matrices, es posible que desee crear una función personalizada para simplificar el proceso.

Aquí hay una función personalizada completa de PowerShell.

function Test-NotInArray {
    param(
        [Parameter(Mandatory=$true)]
        [array]$Array,
        [Parameter(Mandatory=$true)]
        $Item
    )
    return -not ($Array -contains $Item)
}

$array = 'apple', 'banana', 'cherry'
$item = 'mango'

if (Test-NotInArray -Array $array -Item $item) {
    Write-Host "The item '$item' does not exist in the array."
}

Esta función personalizada, Test-NotInArray, se puede reutilizar en todos los scripts para lograr un enfoque limpio y consistente para verificar elementos inexistentes en matrices de PowerShell.

Conclusión

Es posible comprobar si un elemento no existe en una matriz utilizando varios métodos. Si elige utilizar el operador -contains de PowerShell con not, el operador -notcontains, el .Contains() > método, o una función personalizada, ahora tiene varios métodos para realizar esta verificación de manera efectiva.

En este tutorial de PowerShell, he explicado cómo verificar si un elemento no existe en una matriz en PowerShell usando diferentes métodos.

Artículos relacionados