Tous les 3 opérateurs ci-dessus (Match, Like, et Contains) mentionnés sont l’opérateur de comparaison dans PowerShell. Les opérateurs Match et Like sont presque similaires opérateur seule différence est le caractère Wildcard et l’opérateur Contains est entièrement différent. Nous allons voir l’exemple et comprendre comment ils fonctionnent.
Exemple
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
Si vous voyez la sortie de l’exemple ci-dessus, le résultat est True uniquement pour l’instruction Match et la raison est que lorsque vous faites correspondre le mot-clé dans la chaîne, il vérifie si le mot-clé existe ou non. Peu importe que le mot-clé que vous avez utilisé soit un mot-clé individuel ou un mot connecté. L’affirmation ci-dessous est également vraie.
PS C:\WINDOWS\system32> "This is a PowerShell String" -Match "Shell"True
Mais le caractère générique (*) n’est pas utile pour l’opérateur 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
Donc la condition Match n’évalue pas l’opérateur Regex. En revanche, l’opérateur Like est utilisé avec le caractère générique(*).
PS C:\WINDOWS\system32> "This is a PowerShell String" -like "*PowerShell*"True
Donc le caractère générique joue un rôle majeur entre l’opérateur Match et Like. Nous pouvons vérifier l’utilisation du joker (*) avec l’opérateur Contains.
PS C:\WINDOWS\system32> "This is a PowerShell String" -contains "*PowerShell*"False
L’opérateur Contains ne fonctionne pas non plus avec le caractère joker (*). C’est un opérateur entièrement différent de Match et Like et qui fonctionne avec la collection d’objets (Array).
PS C:\WINDOWS\system32> "Apple","Dog","Carrot","Cat" -contains "dog"True
.