Qual é a diferença entre -Match, -Like e -Contenha Operador em PowerShell?

  • by

Todos os 3 operadores acima mencionados (Match, Like, and Contains) são o operador de comparação na PowerShell. Os operadores Match e Like são quase semelhantes, a única diferença é o carácter Wildcard e o operador Contain é totalmente diferente. Veremos o exemplo e compreenderemos como funcionam.

Exemplo

PS C:\WINDOWS\system32> "This is a PowerShell String" -Match "PowerShell"TruePS C:\WINDOWS\system32> "This is a PowerShell String" -Like "PowerShell"FalsePS C:\WINDOWS\system32> "This is a PowerShell String" -Contains "PowerShell"False

Se vir a saída do exemplo acima, o resultado é Verdadeiro apenas para a declaração de Correspondência e a razão é que, quando corresponde à palavra-chave na cadeia de caracteres, verifica se a palavra-chave existe ou não. Não importa se a palavra-chave utilizada é uma palavra-chave individual ou uma palavra ligada. A declaração abaixo é também verdadeira.

PS C:\WINDOWS\system32> "This is a PowerShell String" -Match "Shell"True

Mas o carácter wildcard (*) não é útil para o operador Match.

PS C:\WINDOWS\system32> "This is a PowerShell String" -Match "*PowerShell*"parsing "*PowerShell*" - Quantifier {x,y} following nothing.At line:1 char:1+ "This is a PowerShell String" -Match "*PowerShell*"+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : OperationStopped: (:) , ArgumentException+ FullyQualifiedErrorId : System.ArgumentException

Então a condição Match não avalia o operador Regex. Em contraste, o operador Like é utilizado com o wildcard caracter(*).

PS C:\WINDOWS\system32> "This is a PowerShell String" -like "*PowerShell*"True

Então o wildcard desempenha um papel importante entre o operador Match e Like. Podemos verificar a utilização do curinga (*) com o operador Contém.

PS C:\WINDOWS\system32> "This is a PowerShell String" -contains "*PowerShell*"False

Contém operador também não funciona com o carácter curinga (*). É um operador totalmente diferente de Match and Like e funciona com a colecção de objectos (Array).

PS C:\WINDOWS\system32> "Apple","Dog","Carrot","Cat" -contains "dog"True
raja

Publicado em 15-Maio-2020 16:34:57

Advertisements

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *