I denne guiden, sjekk ut hvordan du bruker foreach -sløyfen i PowerShell.
PowerShell Loops
I prinsippet er alle løkker de samme. For bedre kodingserfaring og lesbarhet implementerer imidlertid forskjellige programmeringsspråk Loop -konseptet på forskjellige måter. Det samme språket kan faktisk støtte flere typer løkker, hver med sin unike struktur.
PowerShell støtter flere typer løkker.
Som tittelen på artikkelen antyder, ser vi på foreach -sløyfen.
Foreach Loop in PowerShell
Koden til foreach -sløyfestrukturen er som følger.
Foreach (vare i samlingen)
Her,
- Vare: Det er en enkelt verdi eller objekt som endres med hver iterasjon.
- Samling: Det kan være en rekke, liste over verdier, samling eller objekter.
- : Det er kodeblokken som kjører når sløyfetilstanden er oppfylt. Den bruker vanligvis varen.
Foreach er en av de vanligste og enkleste PowerShell -løkkene. Den leser en hel samling av elementer, og for hvert element utfører den operasjonen (e).
Det kan brukes i mange situasjoner, for eksempel å jobbe innholdet i en katalog.
Foreach Loop i praksis
I denne delen vil vi se på noen eksempler på implementeringer av foreach -sløyfen. For å utføre kodene, har jeg allerede utarbeidet et tomt PowerShell -skript.
$ nano foreach-loop.PS1 Shebang ville se ut som dette.
$ #!/snap/bin/powershell Merk Powershell -skriptfilen som en kjørbar.
$ chmod +x foreach-loop.PS1 Foreach gjennom en strengmatrise
I den første demonstrasjonen implementerer vi en foreach -sløyfe som leser fra en streng rekke bynavn og skriver ut bynavnene på skjermen.
Først må du erklære strengarrayen.
$ byer = ("Tokyo", "New York", "Moskva", "London", "Sydney") Implementer nå foreach -sløyfen for å jobbe med hvert element i matrisen.
Foreach ($ by i $ byer)
Echo $ City
Test koden ved å kjøre skriptet.
$ ./foreach-loop.PS1 Foreach gjennom en samling av tall
I dette eksemplet implementerer vi foreach -sløyfen som ligner på den forrige. Forskjellen er at den vil gå gjennom en rekke tall i stedet.
Forklar nummeret.
$ tall = (9,8,7,6,5,4,3,2,1) Implementer nå foreach -sløyfen for å skrive ut tallene en etter en.
foreach ($ nummer i $ tall)
ekko $ nummer
La oss sette koden i verk.
$ ./foreach-loop.PS1 Foreach gjennom filer
Det er et av de vanligste scenariene å bruke foreach -løkker. Ved hjelp av andre cmdlets kan vi få spesifikk informasjon om visse kataloger/filer og bruke den informasjonen til å utføre nødvendige handlinger.
I dette eksemplet vil foreach -sløyfen sjekke innholdet i en katalog/home/viktor/desktop/sample_dir og skrive ut navnet på filene.
foreach ($ fil i get -childitem -recurse -path/home/viktor/desktop/sample_dir)
ekko $ fil
Kjør koden.
$ ./foreach-loop.PS1 Her, cmdlet Get-Childitem Får varene over det beskrevne stedet. Flagget “-Path” beskriver hvilken katalog som skal se nærmere på. Hvis det er flere nivåer av underkataloger, vil det å bruke "-Recurse" få alle barneartiklene rekursivt. Hvis du vil komme tilbake til en viss dybde, kan du også bruke parameteren "-dybde". Sjekk ut mer om Get-Childitem.
Vi kan også finjustere koden for å søke etter bare spesifikke filutvidelser.
foreach ($ fil i get -childitem -recurse -path/home/viktor/desktop/sample_dir/*.tekst)
ekko $ fil
Foreach over CSV
En CSV -fil er en tekstdatabase med verdier, hver verdi atskilt med en avgrensning (komma, for det meste). Det er en enkel, men effektiv struktur for å lagre strukturerte data i tekstformat. CSV -formatet brukes av forskjellige applikasjoner og databasemotorer for enkelhets skyld og brukervennlighet.
Vi kan bruke foreach -sløyfen til å jobbe med individuelle verdier av en CSV -fil og iverksette tiltak deretter. Følgende eksempel gjør nettopp det.
$ verdier = (Get Content/Home/Viktor/Sample.CSV) [0].dele(",")
foreach ($ verdi i $ verdier)
ekko $ verdi
Foreach -metoden
Frem til nå har vi sett foreach -sløyfen i aksjon, ikke sant? I PowerShell vises det også som foreach () -metoden. Med utgangspunkt i PowerShell v4 eksisterer denne metoden på matriser eller samlinger av objekter. Metoden har en standard skriptblokk som parameter som inneholder handlingene å gjøre for hver iterasjon.
La oss se på foreach () -metoden i aksjon. Først må du lage et eksempel på matrise.
$ tall = (2,4,8,16,32,64,128,256,512) Nå kan vi kalle metoden og beskrive en enkel ekkokommando per iterasjon.
$ tall.For hver(
ekko $ _
) Foreach-objekt
Foreach -sløyfen kan også direkte fungere med objekter. For å gjøre det, er det en dedikert cmdlet som heter foreach-object. Det tar et objekt som inngang og itererer gjennom elementene.
I neste eksempel søker vi gjennom en spesifikk katalog etter ".txt ”-filer og bruk for e-objekt til å handle basert på hvert element i søkeresultatet.
$ navn = Get -ChildItem -Recurse/Home/Viktor/Desktop/Sample_Dir/*.tekst
$ navn |
Foreach-object
ekko $ _
Som du kan se, er kjernestrukturen til foreach-objekt ganske lik. Den eneste forskjellen er at du kan passere objektet ved hjelp av rør.
Siste tanker
Foreach Loop in PowerShell er en enkel, men effektiv og kraftig sløyfe. Den kan fungere basert på objekter, matriser eller individuelle elementer. Denne guiden demonstrerer noen av de vanlige implementeringene av foreach -sløyfen.
Foruten foreach -sløyfen, støtter PowerShell andre standardløkker, som for en løkke. Sjekk ut denne guiden for Loop in PowerShell.
Glad databehandling!