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

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

Inhoudsopgave

PowerShell Arrays 101

Een array is eenvoudig gezegd slechts een gestructureerde verzameling variabelen. Het idee is om het gedoe van het bijhouden van tientallen namen te elimineren door gerelateerde variabelen in een genummerde set samen te vouwen.

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 maar dubbele of enkele aanhalingstekens te gebruiken om een ​​tekenreeks op te geven.

$name=“Levin”

Om nu een nieuwe array te maken, wijst u eenvoudigweg toe meerdere waarden naar dezelfde variabele, gescheiden door komma’s. Zoals dit:

$week=”maandag”,”dinsdag”,”woensdag”,”donderdag”,”vrijdag”,”zaterdag”,”zondag”

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=@(“Maandag”, “Dinsdag”, “Woensdag”, “Donderdag”, “Vrijdag”,”Zaterdag”,”Zondag”)

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 bereikoperator 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 arrays kunnen zelfs in elkaar genest zijn, hoewel dit soort 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 we hebben meerdere methoden gezien voor het maken van arrays die verschillende soorten gegevens bevatten. Maar hoe krijg je toegang tot deze gegevens?

PowerShell-arrays gebruiken hetzelfde formaat dat door andere programmeertalen wordt gebruikt. 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-indices beginnen te tellen vanaf 0, dus het eerste item wordt benaderd 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 toevoegen elementen aan een bestaande array in plaats van de waarden van de huidige items te wijzigen door ze gewoon als een rekenkundige uitdrukking toe te voegen.

$names +=”Johny”

Deze methode kan ook 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 verkrijgen tot bepaalde elementen van een array is goed en wel, maar als je acties wilt uitvoeren op de gehele inhoud van een array, kan het vervelend worden. Een elegantere benadering is om een ​​For-lus te gebruiken.

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

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

   $days[$i]
}

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

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

Foreach ($dag in $dagen)
{

    $day
}

Dit bespaart u de moeite van het bepalen van de grootte van de array, waarbij de details aan PowerShell worden overgelaten.

Wanneer moet u PowerShell-arrays gebruiken

De grootste bron van fouten in een complex script zijn variabelen waarnaar onjuist wordt verwezen. Dit komt door 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 om veel arrays te gebruiken. 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 is automatisering, en arrays spelen daarin een cruciale rol. De objecten die worden geretourneerd door Power shell-cmdlets kunnen worden opgeslagen in matrices en worden herhaald. Hierdoor kunnen opeenvolgende taken automatisch worden uitgevoerd, wat het systeembeheer aanzienlijk vereenvoudigt.

Categories: IT Info