heeft u moeite met het begrijpen van PowerShell vergelijkingsoperators zoals eq, ne, ceq en cne. Zo ja, lees verder.

afkomstig van een software ontwikkeling achtergrond de eerste instantie die ik had een ” Huh?”moment was toen ik voor het eerst PowerShell’ s vergelijkingsoperators zag eq, ceq, cne, etc., Alle andere talen hebben vergelijkingsoperators, maar niet helemaal zoals PowerShell. I werd gebruikt voor == en <>.

niet alleen ziet de syntaxis er compleet anders uit dan uw typische programmeertaal, ze gedragen zich ook anders bij het vergelijken van verzamelingen van waarden.

Het is iets dat me echt ophing bij het leren over PowerShell, maar nu lijkt het op dat oude bier adagium; het is een verworven smaak.,

laten we kort ingaan op wat een vergelijkingsoperator is als je onbekend bent en dieper ingaan op de nuances die PowerShell introduceert. Het duurt niet lang, je zult in staat zijn om operators hanteren in uw PowerShell scripts zonder probleem.

zoals ik al zei, hebben alle programmeer – / scripttalen een vergelijkingsoperator. In hun meest fundamentele zin zijn vergelijkingsoperators nodig om te evalueren hoe verschillende dingen zich verhouden tot andere dingen. Ze worden gebruikt om twee objecten te nemen en te zien wat het verschil (indien aanwezig) is tussen die twee objecten.,

in het geval van PowerShell kunnen operators ook worden gebruikt om elementen in verzamelingen van waarden te vinden.

voor dit bericht ga ik de Equality operators en hoe PowerShell ze gebruikt, bespreken. Dit zijn eq en ne met hun hoofdlettergevoelige tegenhangers ceq en cne. Voor een volledige lijst kun je over de Technet site springen of gebruik gewoon Get-Help about_comparison_operatorsin je PowerShell console.,

PowerShell-EQ en-CEQ

Als u ooit wilt zien of een object gelijk is aan een ander object, moet u de operators eq (hoofdlettergevoelig) of ceq (hoofdlettergevoelig) gebruiken. Deze operators testen de waarde van elke entiteit waarmee u wilt vergelijken.

toen ik voor het eerst PowerShell begon te leren zou ik constant zoiets als dit doen

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

je zult snel genoeg worden geslagen om dat niet te doen. Het teken = is een toegewezen operator, geen vergelijkingsoperator., U kunt het teken = niet gebruiken om de ene waarde met de andere te vergelijken.

de juiste manier om dit te doen is om de waarde te bepalen die moet worden gecontroleerd aan de linkerkant van de expressie en gebruik de eq operator. Hier is een voorbeeld van deeq enceq operators en hoe ze gebruikt worden.,

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

Dit is allemaal goed en wel voor scalaire (enkele) waarden, maar je kunt ook alle instanties van bepaalde waarden vinden met behulp van deze operators. Gebruik bijvoorbeeld de PowerShell -eq-operator om items te filteren in een array:

met Behulp van de Eq te zoeken in arrays

Als je hebt een variabele met een verzameling van waarden, zoals een array kunt u gebruik eq en ceq om alle exemplaren van waarden binnen de collectie.,

merk op dat het alle instanties van het integer 9 heeft gevonden waarmee we probeerden te vergelijken. Ik gebruik deze handige methode de hele tijd.

– NE en-CNE

aan de andere kant hebt u zowel ne en cne. Ze zijn precies het tegenovergestelde van eq en ceq maar vertonen exact hetzelfde gedrag alleen tegenovergesteld. Ze testen gelijkheid niet, ze testen ongelijkheid.

PowerShells ne vs., cne

Ik hoop dat dit een goede verklaring geeft voor de Equality comparison operators. Dit heeft me echt opgehangen als een newbie en het nooit echt geklikt voor mij totdat ik werd gewoon geslagen in de onderwerping door foutmeldingen. Ik hoop dat dit bericht voorkomt dat dezelfde beat down ik ontving.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *