PowerShell tömbök: létrehozásuk és használatuk


A változók a bármilyen típusú kódolás legalapvetőbb adatszerkezete. Az egyedi változók azonban aligha elegendőek a legtöbb célra, különösen, ha összetettebb algoritmusokkal foglalkozunk.

Itt jönnek be a tömbök. Legyen szó C++-ról vagy Piton -ről, a tömbök valamilyen formában minden programozási nyelvben jelen vannak. De mi a helyzet a Windows PowerShell-lel? Hogyan működnek a PowerShell-tömbök? Hogyan használod őket? Mi a szintaxisuk? Nézzük meg.

PowerShell-tömbök 101

Egyszerűen szólva egy tömb csak változók strukturált gyűjteménye. Az ötlet az, hogy kiküszöböljük a több tucat név nyomon követésével járó gondot azáltal, hogy összevonjuk a kapcsolódó változókat egy számozott halmazba.

A PowerShellben úgy hozhat létre változót, hogy a $ szimbólumot egy változónév elé fűzi. Például:

$prím = 13

A változó bármilyen adattípust tartalmazhat, a számoktól a karakterláncokig. Csak dupla vagy szimpla idézőjeleket kell használnia egy karakterlánc megadásához.

$name = „Levin”

Most új tömb létrehozásához egyszerűen rendeljen több értéket ugyanahhoz a változóhoz, vesszővel elválasztva. Így:

$week = „hétfő”, „kedd”, „szerda”, „csütörtök”, „péntek”, „szombat”, „vasárnap”

Néhány ember jobban szeret egy változót kifejezetten egy tömbbe önteni, hogy elkerülje a félreértést, bár ez nem szükséges. Ehhez tegye az értékeket zárójelbe a @ szimbólummal.

$hét = @("hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat", "vasárnap")

Ez általában akkor hasznos, ha más parancsok kimenetét egy tömbbe próbálja elhelyezni, ahol nem lehet őket manuálisan a megfelelő formátumban írni.

Tömb létrehozása

Már láttuk a tömb létrehozásának leggyakoribb módszerét. De a helyzettől függően vannak más módszerek is, amelyek alkalmasabbak lehetnek. Ha például egy számtartományt tartalmazó tömböt szeretne létrehozni, használhatja a tartomány operátort:

$digits = (0..9)

Ez létrehoz egy tömböt a tíz számjegyből nullától kilencig. Egy üres tömböt is inicializálhat, ha később szeretne egy helyet az értékek tárolására..

$értékek = @()

Több tömb egymásba is ágyazható, bár ez a fajta használat nagyon gyorsan megzavarhatja.

$koordináták = @(
    (5, 10, 23),
    (11, 7, 16)
)

Alapértelmezés szerint egy tömb bármilyen típusú változót tárolhat, legyen szó számokról, karakterláncokról vagy a kettő keverékéről. De explicit módon meghatározhat egy típust arra az esetre, ha korlátozni szeretné a benne elhelyezett értékeket. Például:

[int[]] $számok = 2,3,4,5

Így a tömb csak egész számokat tartalmazhat. Ha bármilyen más típusú értéket próbál hozzárendelni, az hibát ad vissza. Ez hasznos lehet a kizárólag numerikus értékekkel dolgozó tömbök egyszerű hibáinak megelőzésére, mivel a számításokhoz használt változóba karakterlánc beírása problémákat okoz.

Hozzáférés a tömbökhöz

Eddig többféle módszert láttunk különböző típusú adatokat tartalmazó tömbök létrehozására. De hogyan fér hozzá ezekhez az adatokhoz?

A PowerShell tömbök ugyanazt a formátumot használják, mint a többi programozási nyelv. Minden tömbváltozó az indexszámával érhető el. Például:

$var = $számok[5]

Ez átmásolja a $numberstömb öt indexében tárolt értéket a $varváltozóba. Vegye figyelembe, hogy a tömb indexei 0-tól kezdik a számolást, így az első elem nullával érhető el.

Ha például ezt adnánk ki:

„$days[2]”

A szerda lesz, nem a kedd.

Ugyanezt a módszert használhatja ezen értékek módosítására is. Például a következő parancs a tömb második elemét nullára módosítja:

$számok[1] = 0

További elemeket is hozzáadhat egy meglévő tömbhöz ahelyett, hogy megváltoztatná az aktuális bejegyzések értékét, pusztán számtani kifejezésként hozzáadva őket.

$names += „Johny”

Ez a módszer használható több bejegyzés vagy akár teljes tömbök egyidejű hozzáadására is.

$names += „Charlie, Liam, Teresa”

$names += $vezetéknevek

A vesszővel elválasztott metódus több tömbelem eléréséhez is érvényes. Ennek megadása például a $dayselső öt elemét tárolja a $weekdays-ban..

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

Iterálás tömbökön keresztül

Egy tömb egyes elemeinek kézi elérése jó és jó, de ha egy tömb teljes tartalmával szeretne műveleteket végrehajtani, az fárasztó lehet. Elegánsabb megközelítés a For ciklus használata.

A for ciklusok szisztematikusan át tudnak menni egy tömb összes elemén, és az egyes értékeket az utasításoknak megfelelően dolgozzák fel. Így hozhat létre egy ilyen ciklust:

A ($i = 0 ; $i -lt $days.Length ; $i++)
{

    $days[$i]
}

Az array.Length függvény a tömb méretét adja vissza, ami alapvetően a benne lévő elemek száma. Ez beilleszthető egy For ciklus tesztkifejezési paraméterébe, hogy átfogóan iterálhasson minden elemet.

A Foreach ciklus és a Foreach-objektum hurok ugyanezt megteheti egy még egyszerűbb PowerShell-szkripttel.

Foreach ($day in $day)
{

    $day
}

Ezzel megspórolhatja a tömb méretének meghatározását, és a részleteket a PowerShell kezelheti.

Mikor érdemes PowerShell-tömböket használni

Az összetett szkriptekben a hibák legnagyobb forrása a helytelenül hivatkozott változók. Ennek oka a nagyszámú egyedi elnevezésű változó jelenléte, ami megnehezíti a céljuk megjegyezését.

A probléma legegyszerűbb megoldása a tömbök széles körű használata. Az összes valamilyen módon kapcsolódó változó hozzárendelhető egyetlen tömbhöz, és az indexszámukon keresztül érhető el.

A

Microsoft PowerShell fő használati eset az automatizálás, és ebben a tömbök kulcsszerepet játszanak. A PowerShell-parancsmagok által visszaadott objektumok tömbökben tárolhatók, és ismételhetők. Ez lehetővé teszi az egymást követő feladatok automatikus végrehajtását, ami nagyban leegyszerűsíti a rendszer adminisztrációját.

.

Kapcsolódó hozzászólások:


1.06.2022