PowerShell Variabler og Tabeller

0 Comments

I den forrige artikkelen, heter PowerShell Skripting Veiledning for Nybegynnere, vi utforsket hvordan bruke PowerShell-konsollen til å kjøre skript og lært hva cmdletene er, hvor å bli deres egenskaper og hvordan å bruke rør for å overføre data fra en cmdlet til en annen.

I denne artikkelen, vil vi gå videre til variabler og tabeller, blant annet hva de er og hvordan vi kan opprette, fjerne og endre dem.,jeg>Liste variabler

  • Angi variabel
  • Få variable
  • skriv Ut variabelen
  • Tøm variabel
  • Fjern variabel
  • PowerShell-Matriser
    • Array Liste
    • Array Indeks
    • Flerdimensjonale Matriser
  • PowerShell Utvalg Eksempler
    • Sorter array
    • Legg til array
    • Array lengde
    • Fjerne elementet fra array
    • Array inneholder
    • Tøm array
    • skriv Ut array
    • Loop gjennom en rekke
  • PowerShell Variabler

    En variabel er en enhet i minnet i hvilke verdier er lagret., En variabel i PowerShell begynner med «$» (dollar tegn) og navnet kan inneholde bokstaver, tall og understrek. For å tilordne en verdi til en variabel, bruker vi «=» operatør. For å vise verdien av en variabel, bare skriv inn den variable.,

    Hvis du vil legge til et nummer til en streng, nummer automatisk blir en streng:

    $var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3

    variabeltyper

    PowerShell variabel type er satt til automatisk, basert på den verdien du vil tilordne til det, men du kan også tilordne type manuelt:

    $var1 = "Netwrix"

    for Å finne ut hvilken type en variabel er, bruker vi «GetType ()» parameter:

    $var1 = "Netwrix"$var1.GetType().FullName

    Som vi kan se, vår $var1 variabel har «System.,String» type.

    Her finner du beskrivelser av alle PowerShell variabel typer:

    Du sikkert allerede forstått at du kan skrive til den variable, ikke bare noen bestemt verdi, og la merke til klassen System.Objektet i tabellen. Til denne variabelen kan du skrive utgangen av noen cmdleten.

    Variabel Omfang

    Den variable scope i PowerShell kan enten være lokale eller globale. Som standard, en variabel har en lokal omfang., En variabel er avgrenset av sitt nåværende omfang, for eksempel, en lokal variabel kan være tilgjengelig i en aktuell funksjon eller script, mens en global variabel er aktiv i hele den aktuelle PowerShell-sesjon. For å betegne en global variabel, bruker du formatet $Global: variabel = verdi, som vist i den følgende kommandoen:

    $Global:var4 = 12

    PowerShell Variabel Eksempler

    Liste variabler

    for Å liste alle gjeldende tilgjengelig variabler, kjøre ls variabel:* kommando., Her er et eksempel på output:

    Angi variabel

    Du kan opprette en variabel ved å rett og slett gi den en verdi. For eksempel kommandoen $var4 = «variableexample» skaper en variabel som heter $var4 og tildeler den en strengverdi. Den doble anførselstegn (» «) tyder på at en streng verdi blir tilordnet til variabel.

    Få variable

    Dette er svært lik listen variabel kommando, bare å bruke en annen cmdlet:

    Get-Variable | Out-String

    skriv Ut variabelen

    Du kan sende en variabel en .txt, .csv eller HTML-fil.

    for Å skrive en .,txt-fil, kan du bruke Ut-File kommandoen:

    $var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt

    for Å eksportere data til en .,»d2d13912ee»>

    Og skrive til en HTML-fil, kan du bruke ConvertTo-Html-kommandoen:

    $var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html

    for Å lese en fil som vi eksporterte vi bruker Get-Innhold cmdlet:

    Get-Content C:\scripts\processes.csv

    Tøm variabel

    for Å slette innholdet av en variabel, bruke Clear-Variabel-cmdlet:

    Clear-Variable -name var6 #without $

    Fjern variabel

    for Å fjerne en variabel, bruk av Fjern-Variabel-cmdlet:

    Remove-Variable -name var6 #without $

    PowerShell-Matriser

    En matrise er en type av en variabel., Det er et sett av komponenter (array-elementer) som er ordnet i en bestemt rekkefølge. Elementene i matrisen er nummerert sekvensielt, og du får tilgang til et element ved hjelp av sin indeks nummer.

    Når du oppretter tabeller, være oppmerksom på standard PowerShell atferd. Hvis du oppretter en matrise med flere elementer, PowerShell vil opprette en matrise, som du har tenkt. For eksempel, sette noen tall inn i en tabell, og se deretter en datatype av variabel:

    $array1 = 1, 2, 3$array1.GetType()

    Som du kan se, i dette tilfellet, PowerShell opprettet en array (System.Rekke).,

    Men hvis du setter bare en verdi i en variabel, så PowerShell vil ikke opprette en matrise:

    $array1 = 1$array1.GetType()

    selvfølgelig, du kan ikke alltid vite på forhånd hvor mange objekter vil bli mottatt som et resultat av å utføre en bestemt kommando, så du må ha kode som vil behandle alltid resultatet som en matrise.

    dette kan Du gjøre på mange måter. For eksempel, du kan bruke «,» operatør. Hvis et komma brukes som en binær operator, deretter en normal utvalg er opprettet av; hvis det er brukt som en unær operator, tabellen har kun ett element., For eksempel, her er hvordan vi kan få et utvalg som består av ett element:

    $array1 = ,1$array1.GetType()

    Alternativt, kan du eksplisitt angir datatypen til en variabel:

    ]$array1 = 1$array1.GetType()

    til Slutt, kan du også opprette en matrise ved hjelp subexpression operatør «@», som danner en matrise, selv om ingen objekter i alt er spesifisert. Det er veldig praktisk å opprette en variabel som en tabell, og deretter legge til objekter på det uten å bekymre deg om deres antall.,

    $array3 = @()$array3.GetType()

    Merk at hvert element i en matrise har sin egen datatype, og den typen objekt du kan legge til noen verdier til i tabellen. Hvis det er nødvendig, kan du begrense medlemmer av utvalg til en bestemt datatype — da er det å lage en «skrevet array»., Du kan For eksempel angi at array-elementer må være heltall verdier:

    ]$array1 = 1$array1.GetType()

    Og slik vi definerer system prosesser som utvalg medlemmer:

    ]$array1 = Get-Process$array1.GetType()

    Array Liste

    Hvis du vil endre eller søk på en rekke ofte, du kan bruke ArrayList klasse, som er designet for å la deg enkelt legge til, fjerne, og søke etter elementer i det:

    $array3 = New-Object System.Collections.ArrayList

    Array Indeks

    En indeks i tabellen, er en verdi, vanligvis en numerisk heltall brukes til å identifisere og referanse til en matrise-elementet., Utvalg indekser start på enten null eller én, avhengig av programmeringsspråk. Windows PowerShell-matriser er null-basert, slik at å henvise til det første elementet i tabellen $var3 («element null»), ville du skrive $var3 .

    $var3 = "first", "second", "third"

    Flerdimensjonale Matriser

    Flerdimensjonale matriser er variabler som kan brukes til å lagre informasjon i en tabell uten å måtte skrive den til en ekte database. Det ser ut som en hash-tabell, men den kan lagre forskjellige typer informasjon, for eksempel strenger og heltall., Faktisk, kan du forestille deg en flerdimensjonal array som en tabell med kolonner og rader, hvor hver celle har sin egen indeks inne i en PowerShell-miljø.

    PowerShell Utvalg Eksempler

    Sorter array

    Hvis en tabell inneholder kun én datatype, kan du sortere verdiene ved hjelp av den typen metode:

    $array3 | Sort

    for Å sortere en array med mer enn én datatype, du må bruke sort-Objekt-cmdleten.,

    Legg til array

    Først, la oss lage en tabell:

    $array5 = "one", "two", "three", "four", "five"$array5.gettype()

    for Å enkelt endre vår tabell, må vi legge det til arraylist samling:

    $ArrayList1 = $array5$ArrayList1.GetType()

    Som du kan se, BaseType har endret seg, og vi kan lett endre vårt utvalg nå:

    $ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1

    Array lengde

    for Å returnere antall elementer i tabellen, kan du bruke den .,lengde parameter:

    $array6 = 1,2,3,4,5,6echo $array6.Length

    Fjerne elementet fra array

    Hvis du vil fjerne et element, kan du bruke den .Ta kommandoen., Igjen, det er bedre å bruke en arraylist:

    $ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1

    Array inneholder

    Hvis du ønsker å se hvis noen av elementene i en matrise inneholder en bestemt verdi, kan du bruke den Inneholder metode:

    $array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)

    Tøm array

    Selv om de fleste av matrise operasjoner i PowerShell er relativt lett å oppnå, det er ingen enkelt måte å slette en tabell., Den enkleste måten å bli kvitt en hele matrisen er å tilordne variabelen $null til det:

    $array7 = $null$array7

    for Å sjekke om vårt utvalg er null, kan du kjøre følgende script:

    $array7 -eq $null

    I PowerShell, hvis en variabel er null, du kan ikke bruke noen metoder for å det.

    skriv Ut array

    for Å skrive ut hele matrisen, og vi kan bruke de samme metodene som er beskrevet for utskrift variabler.

    for Å skrive en .txt-fil, kan du bruke Ut-File kommandoen:

    $var5 | Out-File C:\scripts\array.txt

    for Å eksportere til en .,csv-fil, kan du bruke Eksport-Csv-kommandoen:

    $var6 | Export-Csv -Path C:\scripts\array.csv

    Og skrive til en HTML-fil, kan du bruke ConvertTo-Html-kommandoen:

    $var6 | ConvertTo-Html > C:\scripts\processes.html

    Loop gjennom en rekke

    for å håndtere hvert element i en matrise etter hverandre, vi trenger å lage en løkke ved å bruke foreach operatør. For eksempel hvis vi erklærer en string-array og ønsker å telle lengden av hvert ord i matrisen, vi skal kjøre følgende skript:

    $array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }

    I denne artikkelen, vi lærte om variabler og deres typer., Da vi utforsket en variabel av type — tabellen— i detalj, og lærte å spille med det. Med denne informasjonen, er du klar til å dykke inn i PowerShell enda dypere.

    – >

    Jeff er en Direktør for Global Solutions Engineering ved Netwrix. Han er en lang tid Netwrix blogger, foredragsholder og programleder. I Netwrix blogg, Jeff aksjer lifehacks, tips og triks som kan dramatisk forbedre din system administrasjon erfaring.


    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *