PowerShell-Variabler og Arrays
I den foregående artikel, som er opkaldt PowerShell Scripting Selvstudium for Begyndere, vi undersøgte, hvordan at bruge PowerShell console for at udføre scripts og lært, hvad cmdlets er, hvordan de får deres egenskaber, og hvordan at bruge rør til at overføre data fra en cmdlet til en anden.
i denne artikel går vi videre til variabler og arrays, herunder hvad de er, og hvordan vi kan oprette, fjerne og ændre dem.,jeg>Liste variabler
- Array-Liste
- Array Index
- Flerdimensionale Arrays
- Sortere array
- Tilføj til array
- Array længde
- Fjern element fra array
- Array indeholder
- Ryd array
- Print array
- Loop igennem et array
PowerShell Variabler
En variabel er en enhed af hukommelse i, hvilke værdier der er gemt., En variabel i Po .ershell begynder med “$” (dollartegn), og dens navn kan indeholde bogstaver, tal og understregninger. For at tildele en værdi til en variabel bruger vi operatøren”=”. For at vise værdien af en variabel skal du blot indtaste variablen.,
Hvis du vil tilføje et tal til en streng, og antallet bliver automatisk til en streng:
$var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3
Variabel Typer
PowerShell variabel type, indstilles automatisk baseret på den værdi, du tildeler til det, men du kan også tildele den type manuelt:
$var1 = "Netwrix"
for At finde ud af, hvilken type en variabel en værdi, bruger vi “GetType ()” parameter:
$var1 = "Netwrix"$var1.GetType().FullName
Som vi kan se, vores $var1 variabel har “System.,String ” type.
Her er beskrivelser af alle de PowerShell variabel-typer:
Du har sikkert allerede forstået, at du kan skrive til variablen ikke kun nogle bestemte værdi og bemærket den klasse.Objekt i tabellen. Til denne variabel kan du skrive output fra enhver cmdlet.
variabelt omfang
det variable omfang i Po .ershell kan være enten lokalt eller globalt. Som standard har en variabel et lokalt omfang., En variabel er afgrænset af dens nuværende omfang; for eksempel kan en lokal variabel være tilgængelig i en aktuel funktion eller script, mens en global variabel er aktiv i hele den aktuelle Po .ershell-session. Til at betegne en global variabel, skal du bruge formatet $Global: variabel = værdi, som illustreret i det følgende kommando:
$Global:var4 = 12
PowerShell Variabel Eksempler
Liste variabler
en liste over alle aktuelt tilgængelige variabler, køre ls variable:* kommando., Her er et eksempel på output:
Set variable
Du kan oprette en variabel ved blot at tildele den en værdi. For eksempel opretter kommandoen $var4 = “variableeamample” en variabel ved navn $var4 og tildeler den en strengværdi. De dobbelte anførselstegn (” “) angiver, at en strengværdi tildeles variablen.
Hent variabel
Dette ligner meget list variable-kommandoen, bare ved hjælp af en anden cmdlet:
Get-Variable | Out-String
Udskriv variabel
Du kan udskrive en variabel a .t ,t, .csv eller HTML-fil.
for at skrive til en .,t .t-fil, Brug kommandoen Out-File:
$var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt
for at eksportere data til a .,”d2d13912ee”>
Og for at skrive til en HTML-fil, skal du bruge ConvertTo-Html-kommandoen:
$var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html
for At læse en fil, som vi eksporterede, vi bruger Get-Content-cmdlet:
Get-Content C:\scripts\processes.csv
Ryd variabel
for At slette indholdet af en variabel, skal du bruge Klare-Variabel cmdlet:
Clear-Variable -name var6 #without $
Fjern variabel
for helt At fjerne en variabel, brug Fjern-Variabel cmdlet:
Remove-Variable -name var6 #without $
PowerShell Arrays
Et array er en type af en variabel., Det er et sæt komponenter (arrayelementer) arrangeret i en bestemt rækkefølge. Elementer i arrayet nummereres sekventielt, og du får adgang til et element ved hjælp af dets indeksnummer.
Når du opretter arrays, skal du være opmærksom på standard po .ershell-adfærd. Hvis du opretter et array med flere elementer, opretter Po .ershell et array, som du agter. Et par tal i et array, og kontroller derefter datatypen for variablen:
$array1 = 1, 2, 3$array1.GetType()
som du kan se, oprettede Po .ershell i dette tilfælde et array (System.Array).,
Men, hvis du bare lægge en værdi i en variabel, så PowerShell, vil ikke skabe et array:
$array1 = 1$array1.GetType()
selvfølgelig, du kan ikke altid vide på forhånd, hvor mange objekter vil blive modtaget som et resultat af udførelse af en bestemt kommando, så du er nødt til at have kode, der vil altid behandle resultatet som en matrix.
Du kan gøre dette på mange måder. For eksempel kan du bruge operatøren”,”. Hvis et komma bruges som en binær operatør, oprettes et normalt array; hvis det bruges som en unary-operatør, har arrayet kun et element., For eksempel, her er, hvordan vi kan få et array bestående af et enkelt element:
$array1 = ,1$array1.GetType()
Alternativt, kan du udtrykkeligt angiver datatypen for en variabel:
]$array1 = 1$array1.GetType()
Endelig, kan du også oprette et array ved hjælp af underudtryk operatør “@”, der danner en matrix, selv om der ikke objekter på alle, der er er angivet. Det er meget bekvemt at initialisere en variabel som et array, og derefter tilføje objekter til det uden at bekymre sig om deres nummer.,
$array3 = @()$array3.GetType()
Bemærk, at hvert element i et array har sine egne data type, og den type objekt, der giver dig mulighed for at tilføje værdier til arrayet. Hvis det er nødvendigt, kan du begrænse medlemmerne af arrayet til en bestemt datatype — så opretter du et “indtastet array”., For eksempel, kan du angive, at array elementer skal være heltal værdier:
]$array1 = 1$array1.GetType()
Og så kan vi definere system processer som array medlemmer:
]$array1 = Get-Process$array1.GetType()
Array-Liste
Hvis du vil ændre eller søg et array ofte, du kan bruge ArrayList-klassen, som er designet, så du let tilføje, fjerne og søge efter elementer i det er:
$array3 = New-Object System.Collections.ArrayList
Array Index
Et indeks i arrayet er en værdi, typisk en numerisk integer anvendes til at identificere og henvise til en array-elementet., Array indekser starter ved enten nul eller en, afhængigt af programmeringssproget. Windows PowerShell arrays er nul-baseret, så at henvise til det første element i arrayet $var3 (“element nul”), som du ville skrive $var3 .
$var3 = "first", "second", "third"
Flerdimensionale Arrays
Flerdimensionale arrays er variabler, der kan bruges til at gemme information i en tabel uden at skulle skrive det til en rigtig database. Det ligner et hash-bord, men det kan gemme forskellige typer information, såsom strenge og heltal., Faktisk kan du forestille dig et multidimensionelt array som en tabel med kolonner og rækker, hvor hver celle har sit eget indeks inde i et Po .ershell-miljø.
PowerShell Array Eksempler
Sortere array
Hvis en matrix kun indeholder én datatype, kan du sortere værdier ved hjælp af den Slags metode:
$array3 | Sort
for At sortere et array med mere end én datatype, du er nødt til at bruge den Slags-Objekt cmdlet.,
Tilføj til array
for det Første, lad os oprette et array:
$array5 = "one", "two", "three", "four", "five"$array5.gettype()
for nemt At ændre vores array, vi har brug for at tilføje det til arraylist samling:
$ArrayList1 = $array5$ArrayList1.GetType()
Som du kan se, BaseType har ændret sig, og vi kan nemt ændre vores array nu:
$ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1
Array længde
for At returnere antallet af elementer i arrayet, skal du bruge .,længde parameter:
$array6 = 1,2,3,4,5,6echo $array6.Length
Fjern element fra array
for At fjerne en vare, bruge den .Fjern kommando., Igen, det er bedre at bruge en arraylist:
$ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1
Array indeholder
Hvis du ønsker at se, om nogen af de elementer i et array der indeholder en bestemt værdi, skal du bruge den metode Indeholder:
$array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)
Ryd array
Selv om de fleste af array operations i PowerShell er relativt let at udføre, der er ingen enkelt måde at slette et array., Den nemmeste måde at slippe af med en hel vifte er at tildele variablen $null til det:
$array7 = $null$array7
for At kontrollere, om vores array er null, skal du køre følgende script:
$array7 -eq $null
I PowerShell, hvis en variabel er null, du kan ikke anvende nogen metoder til det.
Udskriv array
for at udskrive et helt array kan vi bruge de samme metoder, der er beskrevet til udskrivning af variabler.
for at skrive til en .t .t-fil, Brug kommandoen Out-File:
$var5 | Out-File C:\scripts\array.txt
for at eksportere til a .,csv-fil, skal du bruge Eksport-Csv-kommando:
$var6 | Export-Csv -Path C:\scripts\array.csv
Og for at skrive til en HTML-fil, skal du bruge ConvertTo-Html-kommandoen:
$var6 | ConvertTo-Html > C:\scripts\processes.html
Loop igennem et array
for at håndtere hvert enkelt element i et array ene efter den anden, er vi nødt til at lave en løkke hjælp foreach operatør. For eksempel, hvis vi erklærer, at et string-array, og ønsker at regne længden af hvert ord i det array, vi skal køre følgende script:
$array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }
I denne artikel, vi har lært om variabler og deres typer., Derefter udforskede vi en variabel type — arrayet— i detaljer og lærte at spille med det. Med disse oplysninger er du klar til at dykke ned i Po .ershell endnu dybere.