PowerShell Arrays: Ako ich vytvoriť a používať

Premenné sú najzákladnejšou dátovou štruktúrou v akomkoľvek type kódovania(any type of coding) . Jednotlivé premenné však na väčšinu účelov sotva stačia, najmä ak ide o zložitejšie algoritmy.

Tu prichádzajú polia. Či už je to C++ alebo Python , polia sú v nejakej forme prítomné v každom programovacom jazyku. Ale čo Windows PowerShell ? Ako fungujú polia PowerShell ? Ako ich používate? Aká je ich syntax? Poďme zistiť.

PowerShell Arrays 101

Jednoducho(Simply) povedané, pole je len štruktúrovaná zbierka premenných. Cieľom je eliminovať problémy so sledovaním desiatok mien zbalením súvisiacich premenných do očíslovanej sady.

V PowerShell môžete vytvoriť premennú tak, že pred názov premennej pridáte symbol $. Napríklad:

$prime = 13

Premenná môže obsahovať akýkoľvek typ údajov, od čísel po reťazce. Na zadanie reťazca stačí použiť dvojité alebo jednoduché úvodzovky.

$name = “Levin”

Teraz, ak chcete vytvoriť nové pole, jednoducho priraďte viac hodnôt tej istej premennej, oddelené čiarkami. Páči sa ti to:

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

Niektorí ľudia uprednostňujú explicitné pretypovanie premennej do poľa, aby sa vyhli nejasnostiam, hoci to nie je potrebné. Ak to chcete urobiť, vložte hodnoty do zátvoriek so symbolom @.

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

To sa zvyčajne hodí, keď sa pokúšate umiestniť výstup iných príkazov do poľa, kde ich nemôžete ručne zapísať v správnom formáte.

Vytvorenie poľa

Už sme videli najbežnejšiu metódu vytvárania poľa. Ale v závislosti od situácie existujú aj iné spôsoby, ktoré môžu byť vhodnejšie. Napríklad, ak chcete vytvoriť pole, ktoré obsahuje rozsah čísel, môžete použiť operátor rozsahu:

$digits = (0..9)

Tým sa vytvorí pole všetkých desiatich číslic od nuly po deväť. Môžete tiež inicializovať prázdne pole v prípade, že chcete neskôr uložiť hodnoty.

$values = @()

Viaceré(Multiple) polia môžu byť dokonca vnorené do seba, hoci tento typ použitia môže byť veľmi rýchlo mätúci.

$coordinates = @(
    (5, 10, 23),
    (11, 7, 16)
)

V predvolenom nastavení môže pole ukladať akýkoľvek typ premennej, či už ide o čísla, reťazce alebo kombináciu oboch. Ale môžete explicitne definovať typ v prípade, že chcete obmedziť hodnoty v ňom vložené. Napríklad:

[int[]] $numbers = 2,3,4,5

Týmto spôsobom môže pole obsahovať iba celé čísla. Ak sa mu pokúsite priradiť akýkoľvek iný typ hodnoty, vráti sa chyba. To môže byť užitočné na zabránenie jednoduchým chybám pre polia pracujúce výlučne s číselnými hodnotami, pretože zadanie reťazca do premennej, ktorá sa má použiť pri výpočtoch, spôsobí problémy.

Prístup k poliam

Doteraz sme videli viacero metód na vytváranie polí obsahujúcich rôzne typy údajov. Ako však k týmto údajom pristupujete?

Polia PowerShell(PowerShell) používajú rovnaký formát, aký používajú iné programovacie jazyky. Ku každej premennej poľa je možné pristupovať podľa jej indexového čísla. Napríklad:

$var = $numbers[5]

Tým sa skopíruje hodnota uložená v indexe päť poľa $numbers v premennej $varVšimnite si, že indexy poľa začínajú počítať od 0, takže k prvej položke sa pristupuje s nulou.

Ak by sme to vypísali napr.

“$days[2]”

Dostaneme stredu, nie utorok.

Rovnakú metódu môžete použiť aj na úpravu týchto hodnôt. Napríklad nasledujúci príkaz zmení druhý prvok poľa na nulu:

$numbers[1] = 0

Môžete tiež pridať ďalšie prvky do existujúceho poľa namiesto zmeny hodnôt aktuálnych položiek ich pridaním ako aritmetický výraz.

$names += “Johny”

Táto metóda sa dá použiť aj na pridanie viacerých položiek naraz alebo dokonca celých polí.

$names += “Charlie, Liam, Teresa”

$names += $surnames

Metóda oddelená čiarkami platí aj pre prístup k viacerým prvkom poľa. Ak zadáte toto, napríklad uloží prvých päť prvkov $days do $weekdays .

$weekdays = $days[0,1,2,3,4]

Iterácia cez polia

Manuálny prístup k jednotlivým prvkom poľa je dobrý a dobrý, ale ak chcete vykonávať akcie s celým obsahom poľa, môže to byť únavné. Elegantnejším prístupom je použitie cyklu For.

Cykly For môžu systematicky prechádzať všetkými prvkami poľa a spracovávať každú hodnotu podľa pokynov. Takto môžete vytvoriť takúto slučku:

For ($i = 0 ; $i -lt $days.Length ; $i++){
    $days[$i]}

Funkcia array.Length vracia veľkosť poľa, čo je v podstate počet prvkov v ňom. Toto je možné zapojiť do parametra testovacieho výrazu cyklu For, aby ste mohli komplexne iterovať všetky prvky.

Slučka Foreach a slučka Foreach -object dokážu to isté s ešte štíhlejším skriptom PowerShell .

Foreach ($day in $days){
    $day}

To vám ušetrí námahu pri určovaní veľkosti poľa, pričom podrobnosti ponechá PowerShell na spracovanie.

Kedy by ste mali použiť polia PowerShell(PowerShell Arrays)

Najväčším zdrojom chýb v zložitom skripte sú nesprávne odkazované premenné. Stáva sa to kvôli prítomnosti veľkého počtu jedinečne pomenovaných premenných, čo sťažuje zapamätanie si ich účelu.

Najjednoduchším riešením tohto problému je rozsiahle používanie polí. Všetky premenné, ktoré nejakým spôsobom súvisia, môžu byť priradené do jedného poľa a prístupné prostredníctvom ich indexových čísel.

Hlavným prípadom použitia Microsoft PowerShell(Microsoft PowerShell’s) je automatizácia a polia v tom zohrávajú kľúčovú úlohu. Objekty vrátené rutinami cmdlet PowerShell možno uložiť do polí a opakovať ich. To umožňuje automatické vykonávanie sekvenčných úloh, čo výrazne zjednodušuje správu systému.



About the author

Som Windows MVP a pracujem s Windows od roku 2007. Moje skúsenosti zahŕňajú vývoj softvéru, hardvéru a zvuku a aplikácií pre Windows. Vždy hľadám najlepšie spôsoby, ako zlepšiť používateľskú skúsenosť pri mojej práci, takže ak potrebujete pomôcť s návrhom alebo vývojom softvérovej aplikácie, určite môžem ponúknuť svoje služby.



Related posts