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

A változók a legalapvetőbb adatszerkezetek bármilyen típusú kódolásban(any type of coding) . 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 Pythonról(Python) , a tömbök valamilyen formában minden programozási nyelvben jelen vannak. De mi a helyzet a Windows PowerShell-lel(Windows PowerShell) ? Hogyan működnek a PowerShell- tömbök? Hogyan használod őket? Mi a szintaxisuk? Találjuk ki.

PowerShell tömbök 101

Egyszerűen(Simply) 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 a kapcsolódó változókat egy számozott halmazba összevonjuk.

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

$prime = 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”

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

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

Vannak, akik a félreértések elkerülése végett szeretnek egy változót kifejezetten egy tömbbe önteni, bár ez nem szükséges. Ehhez tegye az értékeket zárójelbe a @ szimbólummal előre.

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

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

Tömb létrehozása

A tömb létrehozásának legáltalánosabb módszerét már láttuk. 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)

Ezzel 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 csak később szeretne egy helyet tárolni az értékeket.

$values = @()

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

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

Alapértelmezés szerint egy tömb bármilyen típusú változót tárolhat, legyen az szám, karakterlánc vagy mindkettő keveréke. 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[]] $numbers = 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 az egyszerű hibák megelőzésére a kizárólag numerikus értékekkel dolgozó tömböknél, 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 számos módszert láttunk különféle típusú adatokat tartalmazó tömbök létrehozására. De hogyan fér hozzá ezekhez az adatokhoz?

A PowerShell(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 = $numbers[5]

$var változóban lévő $numbers tömb öt indexében tárolt értéket . Ne feledje, hogy a tömb indexei 0-tól kezdik a számolást, tehát az első elem nullával érhető el.

Ha ezt írnánk ki, például:

“$days[2]”

Szerdát kapunk, nem keddet.

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:

$numbers[1] = 0

Több elemet is hozzáadhat egy meglévő tömbhöz, ahelyett, hogy megváltoztatná az aktuális bejegyzések értékét, egyszerűen hozzáadva őket, mint egy számtani kifejezést.

$names += “Johny”

Ezzel a módszerrel több bejegyzést is hozzáadhatunk egyszerre, vagy akár teljes tömböket is.

$names += “Charlie, Liam, Teresa”

$names += $surnames

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 $days első öt elemét tárolja a $weekdays .

$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án szeretne műveleteket végrehajtani, az fárasztó lehet. Elegánsabb megközelítés a For hurok használata.

A For ciklusok szisztematikusan végig tudnak menni egy tömb összes elemén, és az utasításoknak megfelelően feldolgozzák az egyes értékeket. Így hozhat létre egy ilyen hurkot:

For ($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ő a For ciklus tesztkifejezési paraméterébe, hogy átfogóan iteráljon az összes elemen.

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

Foreach ($day in $days){
    $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?(PowerShell Arrays)

Az összetett szkriptekben a hibák legnagyobb forrása a helytelenül hivatkozott változók. Ez a nagyszámú egyedi elnevezésű változó jelenléte miatt következik be, 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ó egyetlen tömbhöz rendelhető, és az indexszámukon keresztül érhető el.

A Microsoft PowerShell(Microsoft PowerShell’s) fő használati esete az automatizálás, és ebben a tömbök kulcsszerepet játszanak. A PowerShell(PowerShell) -parancsmagok által visszaadott objektumok tömbökben tárolhatók, és ismételhetők. Ez lehetővé teszi a szekvenciális feladatok automatikus végrehajtását, ami jelentősen leegyszerűsíti a rendszer adminisztrációját.



About the author

Szoftvermérnök vagyok, több mint 10 éves tapasztalattal a Windows mérnöki területen. Szakterületem a Windows alapú alkalmazások, valamint a Microsoft következő generációs Windows operációs rendszeréhez, a Windows 11-hez tartozó hardver és hangillesztőprogramok fejlesztése. A Windows-alkalmazások készítése terén szerzett tapasztalataim alapján különösen értékes eszköz vagyok minden olyan vállalat számára, amely innovatív technológiai termékeket fejleszt.



Related posts