PowerShell variabler och Arrays

0 Comments

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

  • Ställ in variabel
  • få variabel
  • Skriv ut Variabel
  • rensa variabel
  • ta bort variabel
  • PowerShell Arrays
    • Array List
    • Array Index
    • multidimensionella Arrays
  • PowerShell Array exempel
    • 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.

    Jeff är chef för Global Solutions Engineering på Netwrix. Han är en lång tid Netwrix bloggare, högtalare och presentatör. I Netwrix bloggen delar Jeff lifehacks, tips och tricks som dramatiskt kan förbättra din systemadministrationsupplevelse.


    Lämna ett svar

    Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *