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_operators
in 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.,
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:
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.
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.