siete in difficoltà con la comprensione PowerShell operatori di confronto come eq ne ceq e cne. Se è così, continuate a leggere.

Provenendo da un background di sviluppo software la prima istanza ho avuto un ” Eh?”il momento è stato quando ho visto per la prima volta gli operatori di confronto di PowerShelleq,ceq,cne, ecc., Tutte le altre lingue hanno operatori di confronto ma non proprio come PowerShell. Sono stato usato per ==e<>.

Non solo la sintassi sembra completamente diversa dal tipico linguaggio di programmazione, ma si comporta in modo diverso quando si confrontano raccolte di valori.

È qualcosa che mi ha davvero appeso quando ho imparato a conoscere PowerShell, ma ora sembra che il vecchio adagio della birra; è un gusto acquisito.,

Andiamo oltre brevemente ciò che un operatore di confronto è se siete sconosciuti e tuffarsi più in profondità le sfumature che PowerShell introduce. In poco tempo, sarete in grado di maneggiare gli operatori nei vostri script PowerShell senza problemi.

Come ho detto, tutti i linguaggi di programmazione/scripting hanno operatori di confronto. Nel loro senso più elementare, gli operatori di confronto sono necessari per valutare come le cose diverse si confrontano con altre cose. Sono usati per prendere due oggetti e vedere quale sia la differenza (se presente) tra questi due oggetti.,

Nel caso di PowerShell, gli operatori possono anche essere utilizzati per trovare elementi all’interno di raccolte di valori.

Per questo post, ho intenzione di andare oltre gli operatori di uguaglianza e come PowerShell li usa. Questi sonoeq ene con le loro controparti maiuscole e minuscoleceq ecne. Per un elenco completo puoi saltare sul sito Technet o semplicemente usare Get-Help about_comparison_operators nella tua console Powershell.,

PowerShell-EQ e-CEQ

Se hai bisogno di vedere se un oggetto è uguale a un altro oggetto devi usare gli operatori eq (case-insensitive) o ceq (case sensitive). Questi operatori testano il valore di ciascuna entità con cui si desidera confrontare.

Quando ho iniziato a imparare PowerShell, facevo costantemente qualcosa del genere

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

Presto sarai schiaffeggiato abbastanza da non farlo. Il segno= è un operatore di assegnazione NON un operatore di confronto., Non è possibile utilizzare il segno= per confrontare un valore con un altro.

Il modo corretto per farlo è definire il valore da controllare sul lato sinistro dell’espressione e utilizzare l’operatore eq. Ecco un esempio degli operatorieq eceq e come vengono utilizzati.,

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

Questo va bene per valori scalari (singoli), ma puoi anche trovare tutte le istanze di valori particolari usando anche questi operatori. Ad esempio, utilizzare PowerShell -eq operatore per filtrare gli elementi in un array:

Utilizzo dell’Eq per la ricerca array

Se hai una variabile con una collezione di valori come un array, è possibile utilizzare eq e ceq trovare tutte le istanze di valori all’interno della collezione.,

Si noti che ha trovato tutte le istanze dell’intero 9 che abbiamo provato a confrontare. Io uso questo metodo pratico per tutto il tempo.

-NE e-CNE

Sul lato opposto, hai entrambineecne. Sono esattamente l’opposto di eqeceq ma mostrano lo stesso identico comportamento solo di fronte. Non mettono alla prova l’uguaglianza, mettono alla prova la disuguaglianza.

PowerShells ne vs., cne

Spero che questo dia una buona spiegazione degli operatori di confronto di uguaglianza. Questo mi ha davvero riagganciato come un principiante e non mi ha mai fatto veramente clic fino a quando non sono stato appena battuto in sottomissione da messaggi di errore. Spero che questo post impedisca lo stesso pestaggio che ho ricevuto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *