Les bases de PowerShell -Contains, -CContains & -NotContains Opérateurs conditionnels

Windows PowerShell -Contains

Lorsqu’il s’agit de filtrer, ou de trouver des données, nous avons l’embarras du choix avec -Match, -Like et -Contains. Bien qu’il y ait des chevauchements, chaque opérateur conditionnel a un rôle distinctif dans le script PowerShell.

-Contains est le meilleur pour rechercher une valeur exacte. Si je veux qu’une commande renvoie soit Vrai soit Faux, je commence par -Contains, alors que, si je veux une liste de résultats, j’essaie -Match ou -Like.

Sujets pour l’opérateur conditionnel -Contains de PowerShell

  • Exemple 1 : PowerShell -Contains (de base)
  • Exemple 2 : recherche d’une valeur dans une collection
  • Exemple 3 : PowerShell -Contains Spreadsheet
  • Exemple 4 : PowerShell -CContains
  • Exemple 5 : PowerShell -NotContains
  • PowerShell -Match
  • PowerShell -Like

Exemple 1a : PowerShell -Contains

PowerShell utilise des noms singuliers ; ainsi, « contains » est un verbe, et non un nom pluriel. Une caractéristique de -Contains est qu’il renvoie généralement « True » ou « False ». Si vous cherchez une commande qui renvoie une liste de valeurs, employez alors -Match ou -Like.

# PowerShell -Contains OperatorClear-Host$ArraySimple =@("House","Flat","Bungalow")$ArraySimple -Contains "Flat"# Result PS> True

Exemple 1b : Le -Contains de PowerShell est très strict

Les -Contains peuvent être frustrants car ils sont très pointilleux. Après un certain temps, vous réalisez que c’est juste une fonctionnalité de conception, si vous ne l’aimez pas, essayez -Match.

# PowerShell -Contains OperatorClear-Host$ArraySimple =@("House","Flats","Bungalow")$ArraySimple -Contains "Flat"# Result PS> False

Note 1 : -Contains interprète « Flats » et « Flat » comme différents, et renvoie donc False ; peu importe que Flat soit un sous-ensemble de Flats.

Défi : substituez -Match à -Contains.

Guy Recommande : Moniteur WMI gratuit pour PowerShell (OUTIL GRATUIT)

Windows Management Instrumentation (WMI) est l’un des trésors cachés des systèmes d’exploitation de Microsoft. Heureusement, SolarWinds a créé un Moniteur WMI gratuit pour PowerShell afin que vous puissiez découvrir ces joyaux d’informations sur les performances, et ainsi améliorer vos scripts PowerShell.

Supprimez les devinettes sur les compteurs WMI à utiliser lors du scriptage du système d’exploitation, d’Active Directory ou d’Exchange Server. Essayez ce moniteur WMI – il est gratuit.

SolarWinds WMI Monitor Download 100% Free Tool

Exemple 2 : recherche d’une valeur dans une collection

-Contains serait mon choix d’opérateurs conditionnels pour les situations où je voulais tester un élément particulier dans une collection, un tableau ou une table de hachage.

# PowerShell -Contains$Collection = "Peter Smith", "Paula Harris", "Joan Evans"$Collection -Contains "Paula"# Result PS> False

Note 2 : Si vous codiez : $Collection -Contains « Paula Harris »
Le résultat serait : Vrai. Vous avez besoin d’une correspondance exacte de l’élément complet.

Exemple 3 : PowerShell -Contains Spreadsheet

Supposons que nous souhaitons effectuer une recherche dans un fichier appelé links.csv. En outre, nous pouvons utiliser Import-Csv pour lire les données afin de pouvoir tester les valeurs avec -Contains.

Préparation
Ma feuille de calcul s’appelle links.csv
J’ai stocké le fichier dans D:\PowerShell
Le nom de la colonne est « Canal personnalisé »
Voir la capture d’écran à droite.

Guy Recommande : Network Performance Monitor (ESSAI GRATUIT)

SolarWinds Network Performance Monitor (NPM) vous aidera à découvrir ce qui se passe sur votre réseau. Cet utilitaire vous guidera également dans le dépannage ; le tableau de bord indiquera si la cause première est un lien brisé, un équipement défectueux ou une surcharge de ressources.

Ce que je préfère, c’est la façon dont NPM suggère des solutions aux problèmes de réseau. Son a également la capacité de surveiller la santé des machines virtuelles VMware individuelles. Si vous êtes intéressé par le dépannage, et la création de cartes réseau, alors je vous recommande d’essayer NPM sur un essai gratuit de 30 jours.

SolarWinds Network Performance Monitor Télécharger Essai GRATUIT de 30 jours

Exemple 4 : PowerShell -CContains

Comme pour les autres opérateurs conditionnels de PowerShell, vous pouvez les forcer à respecter la casse en faisant précéder la commande d’un ‘C’ ; CContains n’est pas une faute de frappe !

Note 4 : Le fait est que dans la feuille de calcul, la valeur est clairement ‘LinkTop’, lorsque nous forçons la sensibilité à la casse avec CContains, ce n’est pas la même chose que ‘linktop’, d’où un résultat False.

Exemple 5 : PowerShell -NotContains

La négative -NotContains n’est pas aussi utile que -NotMatch. Cependant, d’après ce que nous avons déjà appris, la syntaxe est prévisible.

Note 5 : N’oubliez pas qu’avec -Contains, et par extension -NotContains, la correspondance doit être exacte. Il n’existe pas de  » canal personnalisé  » dont le nom est précisément  » lien « .

Voir plus sur les comparaisons -Like de PowerShell « 

Guy Recommande : SolarWinds Engineer’s Toolset (ESSAI GRATUIT)

Ce Engineer’s Toolset fournit une console complète de 50 utilitaires pour le dépannage des problèmes informatiques. Guy dit que cela m’aide à surveiller ce qui se passe sur le réseau, et que chaque outil m’en apprend davantage sur le fonctionnement du système sous-jacent.

Il y a tellement de bons gadgets ; c’est comme avoir carte blanche dans un magasin de bonbons. Heureusement, les utilitaires sont affichés de manière logique : surveillance, découverte du réseau, diagnostic et outils Cisco. Essayez dès maintenant le kit d’outils pour ingénieurs de SolarWinds dans le cadre d’un essai gratuit de 14 jours !

SolarWinds Engineer’s Toolset Download 14-day FREE Trial

About_Operators

# For even more information about PowerShell Operators try:Get-Help about_Operators

Voici la liste des types d’opérateurs de PowerShell

Voir aussi PowerShell’s -.Match »

« 

Résumé de l’opérateur conditionnel -Contains de PowerShell

Lorsque vous recherchez une valeur exacte, alors -Contains serait mon premier choix d’opérateur conditionnel. -Match ou -Like sont mieux adaptés aux scénarios où vous n’avez besoin que d’une correspondance partielle, ou vous avez besoin d’une liste d’éléments.

Voir plus d’exemples de contrôle de flux Windows PowerShell

– Accueil PowerShell – Déclaration If PowerShell – ElseIf PowerShell – Analyseur de permissions gratuit

– Opérateurs conditionnels – PowerShell -Match – PowerShell -Like – PowerShell -Contains

– Opérateurs de comparaison PowerShell – Syntaxe PowerShell – Filtre Where – PowerShell Else

Veuillez m’envoyer un courriel si vous avez un meilleur script d’exemple. Veuillez également signaler toute erreur factuelle, grammaticale ou tout lien brisé, je me ferai un plaisir de corriger la faute.

.

Laisser un commentaire

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