Er du kæmper med at forstå, PowerShell sammenligning operatører som eq
ne
ceq
og cne
. Hvis ja, læs videre.
kommer fra en soft ?areudvikling baggrund den første instans jeg havde en “Huh?”øjeblik var, da jeg første gang så PowerShell sammenligning operatører eq
ceq
cne
osv., Alle andre sprog har sammenligningsoperatører, men ikke helt som Po .ershell. Jeg var vant til ==
og <>
.
ikke kun ser syntaksen helt anderledes ud end dit typiske programmeringssprog, de opfører sig også anderledes, når de beskæftiger sig med at sammenligne samlinger af værdier.
Det er noget, der virkelig hængt mig op når man lærer om PowerShell, men nu ser det ud som om, at ol’ øl ordsprog; det er en erhvervet smag.,
lad os gå kort over, hvad en sammenligningsoperatør er, hvis du ikke er bekendt og dykker dybere ned i de nuancer, som Po .ershell introducerer. Inden længe kan du bruge operatører i dine Po .ershell-scripts uden problemer.
Som nævnt har alle programmeringssprog / scriptsprog sammenligningsoperatører. I deres mest basale forstand er sammenligningsoperatører nødvendige for at evaluere, hvordan forskellige ting sammenlignes med andre ting. De er vant til at tage to objekter og se, hvad forskellen (hvis nogen) er mellem disse to objekter.,
i Po .ershell ‘ s tilfælde kan operatører også bruges til at finde elementer inde i samlinger af værdier.
for dette indlæg vil jeg gå over ligestillingsoperatørerne, og hvordan Po .ershell bruger dem. Disse er eq
og ne
med deres case-sensitive kolleger ceq
og cne
. For en komplet liste kan du hoppe over Technet site eller bare bruge Get-Help about_comparison_operators
i din Powershell console.,
PowerShell -EQ og -af ceq
Hvis du nogensinde har brug for at se, om et objekt er lig med et andet objekt, du er nødt til at bruge eq
(store og små bogstaver) eller ceq
(bogstaver) operatører. Disse operatører tester værdien af hver enhed, du gerne vil sammenligne med.
Da jeg først begyndte at lære PowerShell jeg havde hele tiden gøre noget som dette:
$string = 'Adam'if ($string = 'Adam') { 'string is equal to Adam'}
Du vil snart blive klasket nok til ikke at gøre det. =
– tegnet er en tildelingsoperatør, der ikke er en sammenligningsoperatør., Du kan ikke bruge=
– tegnet til at sammenligne en værdi med en anden.
den rigtige måde at gøre dette på er at definere værdien for at kontrollere på venstre side af udtrykket og bruge eq
operatør. Her er et eksempel på operatørerne eq
og ceq
og hvordan de bruges.,
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.,
Dette er alt sammen godt og godt for skalære (enkelt) værdier, men du kan også finde alle forekomster af bestemte værdier ved hjælp af disse operatører også. For eksempel, bruge PowerShell -eq operatør til at filtrere elementer i et array:
Hvis du har fået en variabel med en samling af værdier, såsom et array kan du bruge eq
og ceq
for at finde alle forekomster af værdier inde i samlingen.,
Bemærk, at det fandt alle forekomster af heltal 9 Vi forsøgte at sammenligne med. Jeg bruger denne praktiske metode hele tiden.
-NE og -CNE
På den modsatte side, du har både ne
og cne
. De er nøjagtigt det modsatte af eq
og ceq
men viser nøjagtigt den samme opførsel kun modsat. De tester ikke ligestilling, de tester ulighed.
jeg håber, at dette giver en god forklaring af ligestilling sammenligning operatører. Dette fik mig virkelig hængt op som nybegynder, og det klikkede aldrig rigtig for mig, før jeg bare blev slået til indsendelse af fejlmeddelelser. Jeg håber, at dette indlæg forhindrer det samme slag, jeg modtog.