avez-vous du mal à comprendre les opérateurs de comparaison PowerShell comme eq
, ne
, ceq
Et cne
. Si oui, lisez la suite.
venant d’un fond de développement logiciel la première instance que j’ai eu un « hein?” le moment était quand j’ai vu pour la première fois les opérateurs de comparaison de PowerShell eq
, ceq
, cne
, etc., Toutes les autres langues ont des opérateurs de comparaison mais pas tout à fait comme PowerShell. J’ai été utilisé pour ==
et <>
.
non seulement la syntaxe est complètement différente de celle de votre langage de programmation typique, mais elle se comporte également différemment lors de la comparaison de collections de valeurs.
c’est quelque chose qui m’a vraiment accroché en apprenant sur PowerShell, mais maintenant il semble que cet ancien adage de la bière; c’est un goût acquis.,
examinons brièvement ce qu’est un opérateur de comparaison si vous n’êtes pas familier et plongeons plus profondément dans les nuances que PowerShell introduit. Avant longtemps, vous pourrez utiliser des opérateurs dans vos scripts PowerShell sans problème.
Comme je l’ai mentionné, tous les langages de programmation/script ont des opérateurs de comparaison. Dans leur sens le plus fondamental, les opérateurs de comparaison sont nécessaires pour évaluer comment différentes choses se comparent à d’autres choses. Ils sont utilisés pour prendre deux objets et voir quelle est la différence (le cas échéant) entre ces deux objets.,
dans le cas de PowerShell, les opérateurs peuvent également être utilisés pour trouver des éléments dans des collections de valeurs.
pour ce post, je vais passer en revue les opérateurs d’égalité et comment PowerShell les utilise. Ce sont des eq
et ne
avec leur casse homologues ceq
et cne
. Pour une liste complète, vous pouvez sauter sur le site Technet ou simplement utiliser Get-Help about_comparison_operators
dans votre console Powershell.,
PowerShell-EQ and-CEQ
Si vous avez besoin de voir si un objet est égal à un autre objet, vous devez utiliser les opérateurseq
(insensible à la casse) ouceq
(sensible à la casse). Ces opérateurs testent la valeur de chaque entité à laquelle vous souhaitez comparer.
quand j’ai commencé à apprendre PowerShell, je faisais constamment quelque chose comme ça
$string = 'Adam'if ($string = 'Adam') { 'string is equal to Adam'}
Vous serez bientôt assez claqué pour ne pas le faire. Le signe=
est un opérateur d’affectation et non un opérateur de comparaison., Vous ne pouvez pas utiliser le signe =
pour comparer une valeur à une autre.
la bonne façon de le faire est de définir la valeur à vérifier sur le côté gauche de l’expression et d’utiliser l’opérateur eq
. Voici un exemple des opérateurseq
Etceq
et comment ils sont utilisés.,
Notice how eq
returned a boolean True
value when comparing our variable against adam
but ceq
returned a boolean False
value? This displays the case sensitivity difference between the two operators.,
tout cela est bien et bon pour les valeurs scalaires (simples), mais vous pouvez également trouver toutes les instances de valeurs particulières en utilisant ces opérateurs. Par exemple, utiliser le PowerShell -opérateur eq pour filtrer les éléments dans un tableau:
Si vous avez une variable avec une collection de valeurs comme un tableau, vous pouvez utiliser eq
et ceq
pour trouver toutes les occurrences de valeurs à l’intérieur de la collection.,
Notez qu’il a trouvé toutes les instances de l’entier 9 nous avons essayé de comparer. J’utilise cette méthode pratique tout le temps.
-NE et -CNE
Sur le côté opposé, vous avez tous les deux ne
et cne
. Ils sont exactement le contraire de eq
et ceq
mais affichent exactement le même comportement face. Ils ne testent pas l’égalité, ils testent l’inégalité.
j’espère que cela donne une bonne explication des opérateurs de comparaison d’égalité. Cela m’a vraiment accroché en tant que débutant et cela n’a jamais vraiment cliqué pour moi jusqu’à ce que je sois juste battu dans la soumission par des messages d’erreur. J’espère que ce post empêche le même battement que j’ai reçu.