Quelle est la différence entre l’opérateur -Match, -Like et -Contains dans PowerShell ?

  • par

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
raja

Publié le 15-mai-2020 16:34:57

Diverses publicités

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *