PowerShell-arrays: hoe u ze kunt maken en gebruiken

Variabelen zijn de meest elementaire gegevensstructuur in elk type codering(any type of coding) . Maar enkele variabelen zijn nauwelijks voldoende voor de meeste doeleinden, vooral als het gaat om complexere algoritmen.

Dat is waar arrays binnenkomen. Of het nu C++ of Python is, arrays zijn in een of andere vorm in elke programmeertaal aanwezig. Maar hoe zit het met Windows PowerShell ? Hoe werken PowerShell- arrays? Hoe gebruik je ze? Wat is hun syntaxis? Laten we het uitzoeken.

PowerShell-arrays 101

Simpel(Simply) gezegd, een array is slechts een gestructureerde verzameling variabelen. Het idee is om het gedoe van het bijhouden van tientallen namen te elimineren door gerelateerde variabelen samen te vouwen tot een genummerde set.

In PowerShell kunt u een variabele maken door het $ -symbool voor een variabelenaam te plaatsen. Bijvoorbeeld:

$prime = 13

De variabele kan elk gegevenstype bevatten, van getallen tot tekenreeksen. U hoeft alleen dubbele of enkele aanhalingstekens te gebruiken om een ​​tekenreeks op te geven.

$name = “Levin”

Om nu een nieuwe array te maken, wijst u eenvoudig meerdere waarden toe aan dezelfde variabele, gescheiden door komma's. Soortgelijk:

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

Sommige mensen geven er de voorkeur aan om een ​​variabele expliciet in een array te casten om verwarring te voorkomen, hoewel dat niet nodig is. Om dit te doen, plaatst u de waarden tussen haakjes, voorafgegaan door het @-teken.

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

Dit is meestal handig wanneer u probeert de uitvoer van andere opdrachten in een array te plaatsen, waar u ze niet handmatig in het juiste formaat kunt schrijven.

Een array maken

We hebben de meest gebruikelijke methode voor het maken van een array al gezien. Maar afhankelijk van de situatie zijn er andere manieren die misschien meer geschikt zijn. Als u bijvoorbeeld een array wilt maken die een reeks getallen bevat, kunt u de range-operator gebruiken:

$digits = (0..9)

Hiermee wordt een array gemaakt van alle tien cijfers van nul tot negen. U kunt ook een lege array initialiseren, voor het geval u later alleen een plaats wilt om waarden op te slaan.

$values = @()

Meerdere(Multiple) arrays kunnen zelfs in elkaar worden genest, hoewel dit type gebruik erg snel verwarrend kan worden.

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

Standaard kan een array elk type variabele opslaan, of het nu getallen, tekenreeksen of een combinatie van beide zijn. Maar u kunt expliciet een type definiëren voor het geval u de erin geplaatste waarden wilt beperken. Bijvoorbeeld:

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

Op deze manier kan de array alleen gehele getallen bevatten. Als u probeert een ander type waarde eraan toe te wijzen, wordt een fout geretourneerd. Dit kan handig zijn om eenvoudige fouten te voorkomen voor arrays die uitsluitend met numerieke waarden werken, aangezien het invoeren van een tekenreeks in een variabele die in berekeningen moet worden gebruikt, problemen zal opleveren.

Toegang tot arrays

Tot nu toe hebben we meerdere methoden gezien voor het maken van arrays met verschillende soorten gegevens. Maar hoe ga je om met toegang tot deze gegevens?

Power shell -arrays gebruiken dezelfde indeling die wordt gebruikt door andere programmeertalen. Elke arrayvariabele is toegankelijk via zijn indexnummer. Bijvoorbeeld:

$var = $numbers[5]

Dit kopieert de waarde die is opgeslagen in de index vijf van de $numbers array in de $var variabele. Merk op dat array-indexen beginnen te tellen vanaf 0, dus het eerste item wordt geopend met nul.

Als we dit bijvoorbeeld zouden uitvoeren:

“$days[2]”

We krijgen woensdag, niet dinsdag.

U kunt dezelfde methode gebruiken om deze waarden ook te wijzigen. De volgende opdracht verandert bijvoorbeeld het tweede element van de array in nul:

$numbers[1] = 0

U kunt ook meer elementen aan een bestaande array toevoegen in plaats van de waarden van huidige items te wijzigen door ze gewoon als een rekenkundige uitdrukking toe te voegen.

$names += “Johny”

Deze methode kan worden gebruikt om meerdere items tegelijk toe te voegen, of zelfs hele arrays.

$names += “Charlie, Liam, Teresa”

$names += $surnames

De door komma's gescheiden methode geldt ook voor toegang tot meerdere array-elementen. Als u dit invoert, worden bijvoorbeeld de eerste vijf elementen van $days in $weekdays opgeslagen .

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

Itereren door arrays

Handmatig toegang krijgen tot bepaalde elementen van een array is goed en wel, maar als je acties wilt uitvoeren op de volledige inhoud van een array, kan het vervelend worden. Een elegantere benadering is het gebruik van een For-lus.

For-lussen kunnen systematisch alle elementen van een array doorlopen en elke waarde volgens instructies verwerken. Zo bouw je zo'n lus:

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

De functie array.Length retourneert de grootte van de array, wat in feite het aantal elementen erin is. Dit kan worden ingeplugd in de testexpressieparameter van een For-lus om alle elementen uitgebreid te herhalen.

De Foreach -lus en de Foreach -object-lus kunnen hetzelfde doen met een nog slanker PowerShell - script.

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

Dit bespaart u de moeite om de grootte van de array te bepalen, waardoor de details aan PowerShell worden overgelaten.

Wanneer moet u PowerShell-arrays gebruiken?(PowerShell Arrays)

De grootste bron van bugs in een complex script zijn variabelen waarnaar onjuist wordt verwezen. Dit gebeurt vanwege de aanwezigheid van een groot aantal uniek benoemde variabelen, waardoor het moeilijk is om hun doel te onthouden.

De eenvoudigste oplossing voor dit probleem is het uitgebreid gebruiken van arrays. Alle variabelen die op de een of andere manier gerelateerd zijn, kunnen worden toegewezen aan een enkele array en zijn toegankelijk via hun indexnummers.

De belangrijkste use case van Microsoft PowerShell(Microsoft PowerShell’s) is automatisering, en arrays spelen daarin een cruciale rol. De objecten die worden geretourneerd door Power(PowerShell) shell- cmdlets kunnen worden opgeslagen in matrices en worden herhaald. Hierdoor kunnen opeenvolgende taken automatisch worden uitgevoerd, wat het systeembeheer aanzienlijk vereenvoudigt.



About the author

Ik ben een professionele audio- en toetsenbordtechnicus met meer dan 10 jaar ervaring. Ik heb in het bedrijfsleven gewerkt, als consultant en productmanager, en meest recentelijk als software-engineer. Door mijn vaardigheden en ervaring kan ik aan verschillende soorten projecten werken, van kleine bedrijven tot grote bedrijven. Ik ben ook een expert in Windows 11 en werk nu ruim twee jaar aan het nieuwe besturingssysteem.



Related posts