PowerShell Arrays: Sådan opretter og bruger du dem

Variabler er den mest basale datastruktur i enhver form for kodning(any type of coding) . Men enkelte variabler er næppe tilstrækkelige til de fleste formål, især når det drejer sig om mere komplekse algoritmer.

Det er her arrays kommer ind i billedet. Det være sig C++ eller Python , arrays er til stede i alle programmeringssprog i en eller anden form. Men hvad med Windows PowerShell ? Hvordan fungerer PowerShell -arrays? Hvordan bruger du dem? Hvad er deres syntaks? Lad os finde ud af det.

PowerShell Arrays 101

Simpelthen(Simply) er et array blot en struktureret samling af variable. Ideen er at eliminere besværet med at holde styr på snesevis af navne ved at sammenklappe relaterede variabler i et nummereret sæt.

I PowerShell kan du oprette en variabel ved at sætte $-symbolet foran et variabelnavn. For eksempel:

$prime = 13

Variablen kan indeholde enhver datatype, fra tal til strenge. Du skal blot bruge dobbelte eller enkelte anførselstegn for at angive en streng.

$name = “Levin”

For nu at oprette et nyt array skal du blot tildele flere værdier til den samme variabel, adskilt af kommaer. Sådan her:

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

Nogle mennesker foretrækker eksplicit at kaste en variabel ind i et array for at undgå forvirring, selvom det ikke er nødvendigt. For at gøre dette skal du sætte værdierne i parentes foran med @-symbolet.

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

Dette er normalt praktisk, når du forsøger at sætte output fra andre kommandoer ind i et array, hvor du ikke manuelt kan skrive dem i det korrekte format.

Oprettelse af et array

Vi har allerede set den mest almindelige metode til at skabe et array. Men afhængigt af situationen er der andre måder, der kan være mere egnede. Hvis du f.eks. vil oprette et array, der indeholder en række tal, kan du bruge intervaloperatoren:

$digits = (0..9)

Dette vil skabe en matrix af alle de ti cifre fra nul til ni. Du kan også initialisere et tomt array, hvis du bare vil have et sted at gemme værdier senere.

$values = @()

Flere(Multiple) arrays kan endda indlejres i hinanden, selvom denne type brug kan blive forvirrende meget hurtigt.

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

Som standard kan et array gemme enhver variabeltype, det være sig tal, strenge eller en blanding af begge. Men du kan udtrykkeligt definere en type, hvis du vil begrænse værdierne i den. For eksempel:

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

På denne måde kan arrayet kun indeholde heltal. Forsøg på at tildele en anden type værdi til den vil returnere en fejl. Dette kan være nyttigt for at forhindre simple fejl for arrays, der udelukkende arbejder med numeriske værdier, da indtastning af en streng i en variabel, der skal bruges i beregninger, vil skabe problemer.

Adgang til arrays

Indtil videre har vi set flere metoder til at skabe arrays, der indeholder forskellige typer data. Men hvordan går du frem for at få adgang til disse data?

PowerShell -arrays bruger det samme format, der bruges af andre programmeringssprog. Hver matrixvariabel kan tilgås ved dens indeksnummer. For eksempel:

$var = $numbers[5]

Dette vil kopiere værdien gemt i indekset fem af $numbers -arrayet i $var - variablen. Bemærk, at array-indekser begynder at tælle fra 0, så det første element tilgås med nul.

Hvis vi skulle udskrive dette, for eksempel:

“$days[2]”

Vi får onsdag, ikke tirsdag.

Du kan også bruge den samme metode til at ændre disse værdier. For eksempel vil følgende kommando ændre det andet element i arrayet til nul:

$numbers[1] = 0

Du kan også tilføje flere elementer til en eksisterende matrix i stedet for at ændre værdierne af aktuelle poster blot ved at tilføje dem som et aritmetisk udtryk.

$names += “Johny”

Denne metode kan også bruges til at tilføje flere poster på én gang, eller endda hele arrays.

$names += “Charlie, Liam, Teresa”

$names += $surnames

Den kommaseparerede metode gælder også for adgang til flere array-elementer. Indtastning af dette gemmer f.eks. de første fem elementer af $days i $weekdays .

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

Iteration gennem arrays

Manuel adgang til bestemte elementer i et array er godt og godt, men hvis du vil udføre handlinger på hele indholdet af et array, kan det blive kedeligt. En mere elegant tilgang er at bruge en For-løkke.

For sløjfer kan systematisk gennemgå alle elementerne i et array og behandle hver værdi i henhold til instruktionerne. Sådan kan du konstruere en sådan sløjfe:

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

Funktionen array.Length returnerer størrelsen af ​​arrayet, som grundlæggende er antallet af elementer i det. Dette kan tilsluttes en For-løkkes testudtryksparameter for omfattende iteration over alle elementerne.

Foreach - løkken og Foreach - objektløkken(Foreach) kan gøre det samme med et endnu slankere PowerShell -script.

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

Dette sparer dig for besværet med at bestemme arrayets størrelse, hvilket efterlader detaljerne til PowerShell at håndtere.

Hvornår skal du bruge PowerShell-arrays

Den største kilde til fejl i et komplekst script er variabler, der henvises til forkert. Dette sker på grund af tilstedeværelsen af ​​et stort antal unikt navngivne variabler, hvilket gør det svært at huske deres formål.

Den enkleste løsning på dette problem er at bruge arrays i vid udstrækning. Alle variabler relateret på en eller anden måde kan tildeles til et enkelt array og tilgås via deres indeksnumre.

Microsoft PowerShells primære use case er automatisering, og arrays spiller en central rolle i det. De objekter, der returneres af PowerShell -cmdlets, kan gemmes i arrays og gentages. Dette gør det muligt at udføre sekventielle opgaver automatisk, hvilket i høj grad forenkler systemadministrationen.



About the author

Jeg er telefoningeniør med over 10 års erfaring i mobilbranchen, og jeg er specialiseret i reparation og opgradering af smartphones. Mit arbejde har omfattet udvikling og vedligeholdelse af telefonfirmware, udvikling af billeder til Apple-enheder og arbejde med Firefox OS-projekter. Med mine færdigheder inden for softwareudvikling, hardware engineering, billedbehandling og Firefox OS-udvikling har jeg evnen til at tage komplekse problemer og omdanne dem til simple løsninger, der virker på enhver enhed.



Related posts