Operador contains en PowerShell

Migel Hewage Nimesha 1 abril 2022
Operador contains en PowerShell

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

Hay cuatro operadores principales de tipo de contención.

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

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

El operador -contains en PowerShell

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

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

[conjunto/colección] puede ser un conjunto de valores de cadena (separados por comas), por ejemplo, "FOX", "2ndLane".

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

Comprobar un determinado elemento

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

Producción :

True

El elemento/valor de entrada es "2ndLane" 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"

Producción :

False

El elemento/valor de entrada es "NotInTheCollection" 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 comprueba el elemento de entrada exacto dentro de la colección/conjunto dado. El comando se evaluará como False cuando se haya dado una porción/subcadena como elemento de entrada.

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

Producción :

False

En el ejemplo anterior, el elemento de entrada es "StringGiven", pero es una subcadena del elemento "FullStringGiven" 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.

Buscar un conjunto de elementos/colección con el operador -contains en PowerShell

Una de las mayores ventajas del operador -contains es que se puede utilizar 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 existen las mismas instancias en el lado izquierdo (colección dada) y en el lado derecho (colección de entrada/recopilación de prueba). Eso significa que estos operadores de contención usan la 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.

Producción :

True

Este comando ha sido evaluado como True. Porque la colección de entrada es $leftsideobj y la misma instancia está disponible en la colección del lado izquierdo. 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 "Hello" y "Test".

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

Producción :

False

El comando anterior fue evaluado como False. Puede ver que la colección de entrada (lado derecho) es $newleftsideobj, que indirectamente los dos elementos "Hello" y "Test". Si observa el lado izquierdo, tenemos los elementos “Hola” y “Prueba” disponibles. Pero no satisface la igualdad de referencia. Es por eso que la salida es False.

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