jste zápasí s pochopením PowerShell srovnávací operátory jako eq ne ceq cne. Pokud ano, čtěte dál.

přicházející z pozadí vývoje softwaru první instance, kterou jsem měl “ Huh?“moment byl, když jsem poprvé viděl PowerShell je relační operátory eq ceq cne, atd., Všechny ostatní jazyky mají srovnávací operátory, ale ne úplně jako PowerShell. Byl jsem zvyklý na == a <>.

nejen, že syntaxe vypadá úplně jinak než váš typický programovací jazyk, ale také se chovají odlišně při porovnávání sbírek hodnot.

je To něco, co opravdu visel mě, když se učí o PowerShell, ale teď to vypadá, že ol‘ pivo rčení; na chuť.,

pojďme se krátce podívat, co je srovnávací operátor, pokud nejste obeznámeni a ponoříte se hlouběji do nuancí, které PowerShell zavádí. Zanedlouho budete moci ovládat operátory ve skriptech PowerShell bez problémů.

Jak jsem již zmínil, všechny programovací / skriptovací jazyky mají srovnávací operátory. V jejich nejzákladnějším smyslu je nutné srovnávací operátory vyhodnotit, jak různé věci se porovnávají s jinými věcmi. Používají se, aby se dva objekty a vidět, jaký je rozdíl (pokud existuje), je mezi těmito dvěma objekty.,

v případě PowerShellu lze operátory také použít k nalezení prvků uvnitř sbírek hodnot.

pro tento příspěvek půjdu přes operátory rovnosti a jak je PowerShell používá. Tyto jsou eq ne s jejich případ-citlivé protějšky ceq cne. Pro úplný seznam můžete přeskočit stránky Technet nebo stačí použít Get-Help about_comparison_operatorsv konzole Powershell.,

PowerShell -EQ a -CEQ

Pokud budete někdy potřebovat zjistit, jestli objekt je rovna jiný objekt, budete muset použít eq (case-insensitive) nebo ceq (case sensitive) operátorů. Tito operátoři testují hodnotu každého subjektu, proti kterému byste chtěli porovnat.

Když jsem se poprvé začal učit PowerShell, neustále bych dělal něco takového

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

brzy budete dost udeřeni, abyste to neudělali. Značka = je operátor přiřazení, který není srovnávacím operátorem., Pro porovnání jedné hodnoty s druhou nelze použít znak =.

správným způsobem je definovat hodnotu pro kontrolu na levé straně výrazu a použíteq operátor. Zde je příkladeq aceq operátory a jak jsou používány.,

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

to vše je dobré a dobré pro skalární (jednotlivé) hodnoty, ale můžete také najít všechny instance konkrétních hodnot pomocí těchto operátorů. Například, používat PowerShell -eq operátor filtrovat položky v poli:

Pomocí Eq na vyhledávací pole

Pokud máte proměnnou s kolekcí hodnot, jako jsou pole, můžete použít eq ceq najít všechny výskyty hodnoty uvnitř kolekce.,

Všimněte si, že našel všechny instance celé číslo 9 jsme se snažili porovnat proti. Používám tuto praktickou metodu po celou dobu.

-NE, a -CNE

Na opačné straně, oba jste ne cne. Jsou přesně opakem eq a ceq ale zobrazují přesně stejné chování pouze opačně. Netestují rovnost, testují nerovnost.

PowerShells ne vs, cne

doufám, že to dává dobré vysvětlení rovnosti operátory porovnání. Tohle mě fakt dostal zavěsil jako nováček, a to nikdy opravdu klikli na mě, dokud jsem byl jen porazit v podání chybové zprávy. Doufám, že tento příspěvek zabraňuje stejnému úderu, který jsem obdržel.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *