PowerShell variabler och Arrays
i den tidigare artikeln, som heter PowerShell Scripting Tutorial för nybörjare, utforskade vi hur man använder PowerShell-konsolen för att utföra skript och lärde sig vad cmdlets är, hur man får sina egenskaper och hur man använder rör för att skicka data från en cmdlet till en annan.
i den här artikeln kommer vi att gå vidare till variabler och arrayer, inklusive vad de är och hur vi kan skapa, ta bort och ändra dem.,i>listvariabler
- Array List
- Array Index
- multidimensionella Arrays
- Sortera array
- Lägg till i array
- array längd
- ta bort objekt från Array
- array innehåller
- clear array
- Print array
- loop genom en array
PowerShell variabler
en variabel är en minnesenhet där värden lagras., En variabel i PowerShell börjar med ” $ ” (dollartecken) och dess namn kan innehålla bokstäver, siffror och understreck. För att tilldela ett värde till en variabel använder vi ” = ” – operatören. För att visa värdet på en variabel, skriv bara in variabeln.,
om du lägger till ett nummer i en sträng blir numret automatiskt en sträng:
$var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3
variabeltyper
variabeltypen PowerShell ställs in automatiskt baserat på det värde du tilldelar den, men du kan också tilldela den.typen manuellt:
$var1 = "Netwrix"
för att ta reda på vilken typ en variabel är använder vi parametern ”gettype ()”:
$var1 = "Netwrix"$var1.GetType().FullName
som vi kan se, vår $var1 variabel har ”systemet.,Strängen” typ.
här är beskrivningar av alla PowerShell-variabeltyper:
du förstod förmodligen redan att du kan skriva till variabeln inte bara något bestämt värde och märkte klasssystemet.Objekt i tabellen. Till denna variabel kan du skriva utdata från vilken cmdlet som helst.
Variable Scope
variable scope i PowerShell kan vara antingen lokal eller global. Som standard har en variabel ett lokalt tillämpningsområde., En variabel begränsas av dess nuvarande omfattning; till exempel kan en lokal variabel vara tillgänglig i en aktuell funktion eller ett skript, medan en global variabel är aktiv under den aktuella PowerShell-sessionen. För att beteckna en global variabel, använd formatet $Global: variable = value, som visas i följande kommando:
$Global:var4 = 12
PowerShell Variable Examples
Listvariabler
för att lista alla aktuella tillgängliga variabler, kör kommandot ls:*., Här är ett exempel på utdata:
Ställ in variabel
Du kan skapa en variabel genom att helt enkelt tilldela det ett värde. Kommandot $var4 = ”variableexample” skapar till exempel en variabel som heter $var4 och tilldelar det ett strängvärde. De dubbla citaten (” ”) indikerar att ett strängvärde tilldelas variabeln.
hämta variabel
detta liknar kommandot listvariabel, bara med en annan cmdlet:
Get-Variable | Out-String
Skriv ut Variabel
Du kan mata ut en variabel a .txt .csv eller HTML-fil.
för att skriva till en .,txt-fil, använd kommandot Out-File:
$var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt
för att exportera data till a .,”d2d13912ee”>
och för att skriva till en HTML-fil, använd kommandot ConvertTo-Html:
$var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html
för att läsa en fil som vi exporterade använder vi Get-Content cmdlet:
Get-Content C:\scripts\processes.csv
rensa variabel
för att rensa innehållet i en variabel, använd clear-variable cmdlet:
Clear-Variable -name var6 #without $
ta bort variabel
för att helt ta bort en variabel, använd remove-variable cmdlet:
Remove-Variable -name var6 #without $
Power arraysshell
en array är en typ av variabel., Det är en uppsättning komponenter (matriselement) ordnade i en viss ordning. Elementen i matrisen är numrerade i följd, och du kommer åt ett element med dess indexnummer.
När du skapar matriser, var medveten om standard PowerShell-beteendet. Om du skapar en array med flera element, kommer PowerShell skapa en array, som du tänker. Lägg till exempel några nummer i en array och kontrollera sedan datatypen för variabeln:
$array1 = 1, 2, 3$array1.GetType()
som du kan se skapade PowerShell i detta fall en array (System.Array).,
men om du bara sätter ett värde i en variabel, kommer PowerShell inte att skapa en array:
$array1 = 1$array1.GetType()
naturligtvis kan du inte alltid berätta i förväg hur många objekt som kommer att tas emot som ett resultat av att utföra ett visst kommando, så du måste ha kod som alltid behandlar resultatet som en array.
Du kan göra detta på många sätt. Till exempel kan du använda operatören”,”. Om ett komma används som en binär operatör skapas en normal array; om den används som en unary-operatör har matrisen bara ett element., Så här kan vi till exempel få en array som består av ett element:
$array1 = ,1$array1.GetType()
Alternativt kan du uttryckligen ange datatypen för en variabel:
]$array1 = 1$array1.GetType()
slutligen kan du också skapa en array med hjälp av subexpressionsoperatören”@”, som bildar en array även om inga objekt alls anges. Det är väldigt bekvämt att initiera en variabel som en array och sedan lägga till objekt till det utan att oroa sig för deras nummer.,
$array3 = @()$array3.GetType()
Observera att varje element i en array har sin egen datatyp, och typobjektet låter dig lägga till några värden i matrisen. Om det behövs kan du begränsa medlemmarna i matrisen till en viss datatyp — då skapar du en ”maskinskriven array”., Du kan till exempel ange att arrayelement måste vara heltalvärden:
]$array1 = 1$array1.GetType()
och så definierar vi systemprocesser som arraymedlemmar:
]$array1 = Get-Process$array1.GetType()
Arraylista
om du ändrar eller söker en array ofta kan du använda Arraylisten klass, som är utformad så att du enkelt kan lägga till, ta bort och söka efter objekt i den:
$array3 = New-Object System.Collections.ArrayList
array index
ett index i matrisen är ett värde, vanligtvis ett numeriskt heltal som används för att identifiera och referera till ett arrayelement., Array index börjar på antingen noll eller en, beroende på programmeringsspråket. Windows PowerShell arrays är nollbaserade, så att hänvisa till det första elementet i arrayen $var3 (”element zero”), skulle du skriva $var3 .
$var3 = "first", "second", "third"
flerdimensionella arrayer
flerdimensionella arrayer är variabler som kan användas för att lagra information i en tabell utan att behöva skriva den till en riktig databas. Det ser ut som ett hashbord, men det kan lagra olika typer av information, till exempel strängar och heltal., Faktum är att du kan föreställa dig en flerdimensionell array som ett bord med kolumner och rader, där varje cell har sitt eget index i en PowerShell-miljö.
PowerShell Array exempel
Sortera array
om en matris innehåller endast en datatyp kan du sortera värdena med Sorteringsmetoden:
$array3 | Sort
för att sortera en matris med mer än en datatyp måste du använda sorteringsobjektet cmdlet.,
Lägg till i array
låt oss först skapa en array:
$array5 = "one", "two", "three", "four", "five"$array5.gettype()
för att enkelt ändra vår array måste vi lägga till den i arraylistsamlingen:
$ArrayList1 = $array5$ArrayList1.GetType()
som du kan se har basetype ändrats och vi kan enkelt ändra vår array nu:
$ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1
array längd
för att returnera antalet element i array, använd .,längdsparameter:
$array6 = 1,2,3,4,5,6echo $array6.Length
ta bort objekt från array
för att ta bort ett objekt, använd .Ta bort kommandot., Återigen är det bättre att använda en arraylist:
$ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1
Array innehåller
om du vill se om något av elementen i en array innehåller ett visst värde, använd innehåller metoden:
$array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)
$ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1
clear array
även om de flesta av matrisoperationerna i PowerShell är relativt lätta att utföra, finns det inget enkelt sätt att ta bort en array., Det enklaste sättet att bli av med en hel matris är att tilldela variabeln $null till den:
$array7 = $null$array7
för att kontrollera om vår matris är null, kör följande skript:
$array7 -eq $null
i PowerShell, om en variabel är null, kan du inte tillämpa några metoder för att få bort en hel matris.till den.
Print array
för att skriva ut en hel matris kan vi använda samma metoder som beskrivs för utskriftsvariabler.
för att skriva till en .txt-fil, använd kommandot Out-File:
$var5 | Out-File C:\scripts\array.txt
för att exportera till A .,csv-fil, använd kommandot Export-Csv:
$var6 | Export-Csv -Path C:\scripts\array.csv
och för att skriva till en HTML-fil, använd kommandot ConvertTo-Html:
$var6 | ConvertTo-Html > C:\scripts\processes.html
slinga genom en array
för att hantera varje element i en array en efter en, måste vi göra en slinga med foreach-operatören. Om vi till exempel deklarerar en strängmatris och vill räkna längden på varje ord i matrisen bör vi köra följande skript:
$array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }
i den här artikeln lärde vi oss om variabler och deras typer., Sedan utforskade vi en variabel typ — matrisen— i detalj och lärde oss hur man spelar med den. Med den här informationen är du redo att dyka in i PowerShell ännu djupare.