Operador Contains de PowerShell

Operador Contains de PowerShell

Hay diferentes operadores disponibles en PowerShell que pueden filtrar/comparar o encontrar elementos que coincidan con una cadena de entrada especificada. El -contains es uno de los principales operadores de comparación, clasificado como un operador de tipo Contención.

Hay cuatro operadores de tipo contención principales.

  • -contains
  • -notcontains
  • -in
  • -notin

En este artículo, nos enfocaremos únicamente en el operador -contains. Este operador siempre devuelve un valor booleano (verdadero/falso) si hay una coincidencia. Además, en términos de rendimiento, el operador -contains es bastante rápido en devolver los resultados porque deja de comparar la entrada tan pronto como encuentra la primera coincidencia.

el operador -contains en PowerShell

Este operador puede usarse para verificar si una colección contiene un elemento específico. Su sintaxis es la siguiente.

[set / collection] -contains [test-value or test-object]

[set/collection] puede ser un conjunto de valores de cadena (separados por comas), por ejemplo, "Hola" o "ZORRO", "2daCalle".

[test-value or test-object] puede ser un elemento o conjunto de elementos (colección), por ejemplo, "Hola" o "Hola", "ZORRO", "No2".

Verificar un Elemento Cierto

  • Ejemplo 01:
"Hello", "FOX", "2ndLane" -contains "2ndLane"

Salida:

True

El elemento/valor de entrada es "2daCalle" y se puede ubicar en la colección/conjunto del lado izquierdo. Por lo tanto, la salida/resultado es obviamente True.

  • Ejemplo 02:
"Hello", "FOX", "2ndLane" -contains "NotInTheCollection"

Salida:

False

El elemento/valor de entrada es "NoEnLaColección" y no está incluido en la colección del lado derecho. Por lo tanto, el comando anterior se evaluó como False.

El hecho importante sobre el operador -contains es que verifica el elemento de entrada exacto dentro de la coleccion/conjunto dado. El comando se evaluará como False cuando se haya dado una porción/subcadena como el elemento de entrada.

  • Ejemplo 03:
"Hello", "FOX", "FullStringGiven" -contains "StringGiven"

Salida:

False

En el ejemplo anterior, el elemento de entrada es "CadenaDada", pero es una subcadena del elemento "CadenaCompletaDada" de la colección del lado derecho. Por lo tanto, el elemento de entrada no coincide con un elemento exacto de la colección del lado derecho, y el resultado es False, como se esperaba.

Verificar un Conjunto de Elementos/Colección Con el Operador -contains en PowerShell

Una de las mayores ventajas del operador -contains es que se puede usar para encontrar si la colección/conjunto dado coincide con una colección de entrada. Es importante tener en cuenta que el operador verifica si las mismas instancias existen en el lado izquierdo (colección dada) y en el lado derecho (colección de entrada/colección de prueba). Eso significa que estos operadores de contención utilizan igualdad de referencia cuando el objeto de entrada (objeto de prueba) es una colección.

Ejemplo 01

$leftsideobj = "Hello", "NewString1"

Aquí, asignamos la variable $leftsideobj al conjunto de elementos (colección).

$leftsideobj, "AnotherString" -contains $leftsideobj

Luego, usamos el operador -contains para encontrar una coincidencia.

Salida:

True

Este comando se ha evaluado como True. Porque la colección de entrada es $leftsideobj y la misma instancia está disponible en la colección del lado izquierdo. Esto significa que se ha cumplido la igualdad de referencia. Por lo tanto, el resultado es True.

Ejemplo 02

$newleftsideobj = "Hello", "Test"

Aquí, tenemos la variable $newleftsideobj asignada a una colección que contiene los elementos "Hola" y "Prueba".

`"Hello", "Test", "NewString1" -contains $newleftsideobj`

Salida:

False

El comando anterior se evaluó como False. Puedes ver que la colección de entrada (lado derecho) es $newleftsideobj, que indirectamente contiene los dos elementos "Hola" y "Prueba". Si notas el lado izquierdo, tenemos disponibles los elementos "Hola" y "Prueba". Pero no satisface la igualdad de referencia. Por eso la salida es False.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Artículo relacionado - PowerShell Operator