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