Sunteți luptă cu înțelegere PowerShell operatori de comparație ca eq, ne, ceq și cne. Dacă da, citiți mai departe.

venind dintr-un fundal de dezvoltare software prima instanță am avut un „Huh?”moment a fost când am văzut prima dată PowerShell este operatori de comparație eq, ceq, cne, etc., Toate celelalte limbi au operatori de comparație, dar nu chiar ca PowerShell. Am fost folosit pentru a ==și <>.

nu numai că sintaxa arată complet diferit de limbajul de programare tipic, dar se comportă diferit atunci când se ocupă de compararea colecțiilor de valori.

este ceva care m-a atârnat cu adevărat când am învățat despre PowerShell, dar acum se pare că ol’ beer zicală; este un gust dobândit.,

să trecem pe scurt ce este un operator de comparație dacă nu sunteți familiarizat și să vă aruncați mai adânc în nuanțele pe care le introduce PowerShell. Înainte de mult timp, veți putea să folosiți operatori în scripturile PowerShell fără nicio problemă.după cum am menționat, toate limbajele de programare/scripting au operatori de comparație. În sensul lor cel mai de bază, operatorii de comparație sunt necesare pentru a evalua modul în care lucrurile diferite compara cu alte lucruri. Ele sunt folosite pentru a lua două obiecte și a vedea care este diferența (dacă există) între cele două obiecte.,

În cazul PowerShell, operatorii pot fi de asemenea utilizați pentru a găsi elemente în colecții de valori.

pentru acest post, voi trece peste operatorii de egalitate și modul în care PowerShell le folosește. Acestea sunt eq și ne cu cazul lor sensibile omologii ceq și cne. Pentru o listă completă puteți sări peste site-ul Technet sau pur și simplu utilizați Get-Help about_comparison_operatorsîn consola Powershell.,

PowerShell -EQ și -CEQ

Dacă aveți vreodată nevoie pentru a vedea dacă un obiect este egal cu un alt obiect trebuie să utilizați eq (case-insensitive) sau ceq (case sensitive) operatorii. Acești operatori testează valoarea fiecărei entități pe care doriți să o comparați.

când am început să învăț PowerShell, aș face în mod constant ceva de genul

$string = 'Adam'if ($string = 'Adam') { 'string is equal to Adam'}

în curând veți fi lovit suficient pentru a nu face asta. Semnul = este un operator de atribuire, nu un operator de comparație., Nu puteți utiliza semnul = pentru a compara o valoare cu alta.

modul corect de a face acest lucru este de a defini valoarea de verificat în partea stângă a expresiei și de a folosi operatorul eq. Aici este un exemplu de eq și ceq operatori și modul în care acestea sunt utilizate.,

PowerShell’s eq vs ceq

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.,

Acest lucru este bine și bun pentru valorile scalare (unice), dar puteți găsi, de asemenea, toate instanțele de valori particulare folosind acești operatori. De exemplu, utilizați PowerShell -eq operator pentru a filtra elementele într-o matrice:

Folosind Eq pentru a căuta rețele

Dacă ai o variabilă cu o colecție de valori cum ar fi o matrice puteți folosi eq și ceq pentru a găsi toate cazurile de valori în interiorul colecției.,

observați că a găsit toate instanțele întregului 9 pe care am încercat să le comparăm. Eu folosesc această metodă la îndemână tot timpul.

-NE și -CNE

Pe partea opusă, ați ne și cne. Ele sunt exact opusul eq și ceq dar afișa exact același comportament opus. Nu testează egalitatea, testează inegalitatea.

PowerShells ne vs, cne

sper că acest lucru vă oferă o bună explicație a egalității operatori de comparație. Acest lucru într-adevăr mi-a închis ca un newbie și niciodată nu a făcut clic cu adevărat pentru mine până când am fost doar bătut în prezentarea de mesaje de eroare. Sper că această postare împiedică aceeași bătaie pe care am primit-o.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *