PowerShell-Variabler og Arrays

0 Comments

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

  • Set variable
  • Få variable
  • Print variable
  • Ryd variabel
  • Fjern variabel
  • PowerShell Arrays
    • Array-Liste
    • Array Index
    • Flerdimensionale Arrays
  • PowerShell Array Eksempler
    • 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.

    Jeff er direktør for Global Solutions Engineering hos Net .ri.. Han er en lang tid Net .ri.blogger, højttaler, og studievært. I net .ri. – bloggen deler Jeff lifehacks, tip og tricks, der dramatisk kan forbedre din systemadministrationsoplevelse.


    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *