kämpar du med att förstå PowerShell jämförelse operatörer som eq
, ne
, ceq
och cne
. Om så är fallet, läs vidare.
kommer från en mjukvaruutveckling bakgrund första instans jag hade en ”Huh?”ögonblick var när jag först såg Powershells jämförelseoperatörer eq
, ceq
, cne
, etc., Alla andra språk har jämförelseoperatörer men inte riktigt som PowerShell. Jag användes för att ==
och <>
.
syntaxen ser inte bara helt annorlunda ut än ditt typiska programmeringsspråk.de beter sig också annorlunda när man jämför samlingar av värden.
det är något som verkligen hängde mig när jag lärde mig om PowerShell men nu verkar det som att ol ’ beer adage; det är en förvärvad smak.,
låt oss gå över kortfattat vad en jämförelseoperatör är om du är obekant och dyka djupare in i nyanser som PowerShell introducerar. Innan länge, kommer du att kunna svinga operatörer i dina PowerShell skript utan problem.
som jag nämnde har alla programmerings – /skriptspråk jämförelseoperatörer. I sin mest grundläggande mening är jämförelseoperatörer nödvändiga för att utvärdera hur olika saker jämför med andra saker. De används för att ta två objekt och se vad skillnaden (om någon) är mellan dessa två objekt.,
i Powershells fall kan operatörer också användas för att hitta element i samlingar av värden.
För det här inlägget kommer jag att gå över jämställdhetsoperatörerna och hur PowerShell använder dem. Dessa äreq
ochne
med sina skiftlägeskänsliga motsvarigheterceq
ochcne
. För en fullständig lista kan du hoppa över Technet-webbplatsen eller bara använda Get-Help about_comparison_operators
I din Powershell-konsol.,
PowerShell-EQ och-CEQ
om du någonsin behöver se om ett objekt är lika med ett annat objekt måste du användaeq
(skiftlägeskänslig) ellerceq
(skiftlägeskänslig) operatorer. Dessa operatörer testar värdet för varje enhet som du vill jämföra mot.
När jag först började lära mig PowerShell skulle jag ständigt göra något så här
$string = 'Adam'if ($string = 'Adam') { 'string is equal to Adam'}
Du kommer snart att bli smackad nog för att inte göra det. =
– tecknet är en tilldelningsoperatör som inte är en jämförelseoperatör., Du kan inte använda=
– tecknet för att jämföra ett värde mot ett annat.
det rätta sättet att göra detta är att definiera värdet för att kontrollera på vänster sida av uttrycket och använda eq
– operatören. Här är ett exempel på operatörerna eq
och ceq
och hur de används.,
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.,
det här är bra och bra för skalära (enstaka) värden, men du kan också hitta alla instanser av specifika värden med hjälp av dessa operatörer också. Använd till exempel PowerShell-EQ-operatören för att filtrera objekt i en array:
om du har en variabel med en samling värden som en array kan du använda
om du har en variabel med=”9b7327ed51″ >
och ceq
för att hitta alla instanser av värden i samlingen.,
Observera att det hittade alla instanser av heltalet 9 Vi försökte jämföra mot. Jag använder denna praktiska metod hela tiden.
-NE och-CNE
på motsatt sida har du både ne
och cne
. De är precis motsatsen till eq
och ceq
men visar exakt samma beteende bara motsatt. De testar inte jämlikhet, de testar ojämlikhet.
Jag hoppas att detta ger en bra förklaring av jämlikhetsjämförelseoperatörerna. Detta fick mig verkligen hängde upp som en nybörjare och det aldrig riktigt klickade för mig tills jag var bara slå in inlämning av felmeddelanden. Jag hoppas att det här inlägget förhindrar samma slå ner jag fick.