Introduction aux exemples de -Like et -NotLike de PowerShell

Sur cette page, je vais expliquer comment filtrer les données avec le comparateur -Like de PowerShell.

Un jour, j’ai voulu créer un script WMI en utilisant l’adaptateur réseau, mais même en utilisant PowerShell, je n’ai pas pu trouver les bonnes propriétés, alors je suis revenu aux bases et j’ai listé tous les cmdlets contenant ‘Adapter’.

Sujets pour l’opérateur -Like de PowerShell

  • Différences entre -Like et -Match
  • Exemple 1 : Comparateur -Like de PowerShell
  • Exemple 2 : Double joker -Match *Adapter*
  • Exemple 3 : Le comparateur -Match au lieu de -Like
  • Exemple 4 : PowerShell -NotLike

Différences entre -Like et -Match

En bref, si vous vous dites :  » Je vais probablement avoir besoin d’un joker pour trouver cet élément « , alors commencez par -Like. Cependant, si vous êtes à peu près sûr de la plupart des lettres du mot que vous recherchez, alors il vaut mieux expérimenter avec -Match.

Voici une distinction plus technique : -Match est une expression régulière, tandis que -Like est juste une comparaison de caractères génériques, un sous-ensemble de -Match.

Exemple 1 : le comparateur -Like de PowerShell

Cet exemple ne liste que les cmdlets qui se terminent par les lettres ‘adapter’.

# PowerShell -Like Operator# Author: Guy Thomas# Version September 2011 tested on PowerShell v 2.0Clear-HostGet-WmiObject -List | Where-Object {$_.name -Like "*Adapter"}

Points d’apprentissage

Note 1 : Observez comment Get-WmiObject utilise le paramètre -List.

Note 2 : La plupart des scripts de comparateurs sont introduits par Where-Object, suivi de la construction du pipeline : $_.

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. Faites l’essai de ce moniteur WMI – il est gratuit.

SolarWinds WMI Monitor Download 100% Free Tool

Exemple 2 : Double Wildcards -Match *Adapter*

Le problème avec l’exemple 1 est que je soupçonne qu’il y a plus de cmdlets contenant le mot Adapter, par exemple ‘adapter’ peut-être au milieu du nom de la classe WMI.

# PowerShell example to demonstrate -Like# Author: Guy Thomas# Version September 2011 tested on PowerShell v 2.0Clear-HostGet-WmiObject -List | Where-Object {$_.name -Like "*Adapter*"}

Points d’apprentissage

Note 3 : Une fois de plus, réalisez l’importance de la construction $_. Le dollar, le trait de soulignement. Le point signifie ‘dans ce flux de données’.

Note 4 : Grâce au deuxième *, l’exemple 2 devrait renvoyer plus de cmdlets.

Voir d’autres exemples PowerShell -Match.

Exemple 3 : Le comparateur -Match au lieu de -Like

J’aime être flexible avec les comparateurs de PowerShell, si les résultats ne sont pas ceux que j’avais prévus, alors je peux essayer une alternative comme -Match ou -Contains.

# PowerShell example to check with -Match# Author: Guy Thomas# Version September 2011 tested on PowerShell v 2.0Clear-HostGet-WmiObject -List | Where-Object {$_.name -Match "Adapter"}

Points d’apprentissage

Note 5 : En fait, cet exemple devrait lister les mêmes classes WMI que l’exemple 2, mais dans d’autres scripts, vous pouvez obtenir de meilleurs résultats en utilisant -Match au lieu de -Like.

Voir aussi le -Match de PowerShell »

Guy Recommends : 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 : Plus de comparateurs -NotLike

Il est temps de faire une récapitulation : Le comparateur le plus simple est  » égal « , et la façon dont vous le codez dans PowerShell avec -eq (et non =). Cependant, dans ces exemples, -eq ne serait pas efficace, car de manière réaliste, il faudrait connaître la réponse avant de pouvoir poser la question !

J’aimerais profiter de cette occasion pour examiner d’autres comparateurs. Il est surprenant de voir combien de fois l’opérateur négatif -NotLike produit une solution soignée à un problème de script. Par exemple, il existe plusieurs WmiObjects commençant par CIM, une façon de les exclure serait de Not Like « CIM* ».

De plus, en utilisant plusieurs critères dans le filtre, vous pouvez affiner la sortie, pour atteindre mon objectif j’ai ajouté ‘-And’. Si pour une raison quelconque -And échoue rappelez-vous ceci, lors de l’ajout d’un second comparateur le secret est d’ajouter une autre instance du comparateur ($_.name) après le -And.

# PowerShell example to list demonstrate -NotLike with -And# Author: Guy Thomas# Version September tested on PowerShell v 2Clear-Host$WMI = Get-WmiObject -List `| where-Object {$_.name -NotLike "CIM*" -And $_.name -NotLike "__*"}$WMIWrite-Host `n $WMI.count "WMI objects not contain CIM or __"

Points d’apprentissage

Note 6 : Ma mission est toujours de vous faire démarrer. Maintenant, c’est à vous de jouer ; expérimentez avec différents filtres, substituez vos idées à  » CIM « , et  » __ « . Le mieux serait peut-être de combiner -NotLike et -Like.

Note 7 : J’ai ajouté un code pour compter le nombre de classes WMI, cela permet de voir quelle variante de mon script renvoie le plus d’éléments.

Suivi

Comme d’habitude avec mes scripts, la mission est de vous faire démarrer. Si vous voulez en savoir plus sur -Match, -Like et leurs parents, alors commencez par l’aide propre à PowerShell ainsi:
Get-Help about_comparison_operators. (Ou essayez Get-Help about*)

Ces fichiers d’aide introduisent tout un monde de termes spécifiques, par exemple, « comparaisons d’expressions régulières » et « comparaison de caractères génériques ». Une fois que vous avez besoin et que vous comprenez ces informations supplémentaires, alors j’ai réussi ma mission de vous présenter -Match et -Like.

Voir plus sur les opérateurs de comparaison PowerShell « 

« 

Résumé de l’opérateur -Like de PowerShell

Souvent, nous souffrons d’une surcharge d’informations. Travailler avec PowerShell n’est pas différent, cependant il fournit trois opérateurs conditionnels pour filtrer vos informations : -Match, -Like et -Contains. Chaque opérateur a des propriétés différentes ; avec de la recherche, vous pouvez obtenir juste le filtre dont vous avez besoin, et ainsi filtrer le flux d’informations souhaité dans la sortie de votre script.

Si vous aimez cette page, alors partagez-la avec vos amis

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

– Déclaration PowerShell Switch – Techniques PowerShell de la vie réelle – Analyseur de permissions gratuit

– Différences entre For, ForEach et ForEach-Object – Boucles PowerShell – Accueil PowerShell

– Opérateurs conditionnels – Boucle Do While – Déclaration If PowerShell – Crochets PowerShell

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.

.

Catégories : Articles

0 commentaire

Laisser un commentaire

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