Operador Contains do PowerShell

Operador Contains do PowerShell

Existem diferentes operadores disponíveis no PowerShell que podem filtrar/comparar ou encontrar elementos que correspondem a uma string de entrada especificada. O -contains é um dos principais operadores de comparação, classificado como um operador do tipo Containment.

Existem quatro principais operadores de tipo containment.

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

Neste artigo, estamos focando apenas no operador -contains. Este operador sempre retorna um valor Booleano (verdadeiro/falso) se houver uma correspondência. Além disso, em termos de desempenho, o operador -contains é bastante rápido para retornar os resultados porque para de comparar a entrada assim que encontra a primeira correspondência.

o operador -contains no PowerShell

Este operador pode ser usado para verificar se uma coleção contém um elemento específico. Sua sintaxe é a seguinte.

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

[set/collection] pode ser um conjunto de valores de string (separados por vírgula), por exemplo, "Hello" ou "FOX", "2ndLane".

[test-value or test-object] pode ser um elemento ou conjunto de elementos (coleção), por exemplo, "Hello" ou "Hello", "FOX", "No2".

Verificar um Certo Elemento

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

Saída:

True

O elemento/valor de entrada é "2ndLane" e pode ser localizado na coleção/conjunto do lado esquerdo. Portanto, a saída/resultado é obviamente True.

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

Saída:

False

O elemento/valor de entrada é "NotInTheCollection" e não está incluído na coleção do lado direito. Portanto, o comando acima foi avaliado como False.

O fato importante sobre o operador -contains é que ele verifica o elemento de entrada exato dentro da coleção/conjunto dado. O comando será avaliado como False quando uma parte/substring for dada como o elemento de entrada.

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

Saída:

False

No exemplo acima, o elemento de entrada é a "StringGiven", mas é uma substring do elemento "FullStringGiven" da coleção do lado direito. Portanto, o elemento de entrada não corresponde a um elemento exato da coleção do lado direito, e o resultado é False, como esperado.

Verificar um Conjunto de Elementos/Coleção com o Operador -contains no PowerShell

Uma das maiores vantagens do operador -contains é que ele pode ser usado para descobrir se a coleção/conjunto dado corresponde a uma coleção de entrada. É importante ter em mente que o operador verifica se as mesmas instâncias existem do lado esquerdo (coleção dada) e do lado direito (coleção de entrada/coleta de teste). Isso significa que esses operadores de containment usam igualdade de referência quando o objeto de entrada (test-object) é uma coleção.

Exemplo 01

$leftsideobj = "Hello", "NewString1"

Aqui, atribuimos a variável $leftsideobj ao conjunto de elementos (coleção).

$leftsideobj, "AnotherString" -contains $leftsideobj

Então, usamos o operador -contains para encontrar uma correspondência.

Saída:

True

Este comando foi avaliado como True. Porque a coleção de entrada é $leftsideobj e a mesma instância está disponível na coleção do lado esquerdo. Isso significa que a igualdade de referência foi cumprida. Portanto, o resultado é True.

Exemplo 02

$newleftsideobj = "Hello", "Test"

Aqui, temos a variável $newleftsideobj atribuída a uma coleção que contém os elementos "Hello" e "Test".

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

Saída:

False

O comando acima foi avaliado como False. Você pode ver que a coleção de entrada (lado direito) é $newleftsideobj, que indiretamente contém os dois elementos "Hello" e "Test". Se você notar do lado esquerdo, temos os elementos "Hello" e "Test" disponíveis. Mas isso não satisfaz a igualdade de referência. É por isso que a saída é False.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
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.

Artigo relacionado - PowerShell Operator