Wprowadzenie do PowerShell ForEach Loop

Zrozumienie pętli ForEach w PowerShell, ForEach i forLoop, które wykonują te same zadania, oba służą do powtarzania i manipulowania tym samym fragmentem kodu. Jeśli czytasz każdy element tablicy lub może on czytać każdą linię pliku, w takim typie warunków używamy foreach. Na przykład tablica zawierająca użytkowników i chcemy sprawdzić użytkownika o nazwie „Vijay”, więc musimy sprawdzić każdy element i do tego potrzebujemy pętli „foreach”, a gdy znaleziona pętla użytkownika „Vijay” zakończy działanie. Jeśli trzeba było przyjrzeć się atrybutowi miasta każdego użytkownika przed podjęciem działania, można użyć pętli ForEach i wykonać odpowiednie prace w każdym mieście. ForEach oszczędza niewiele pamięci i czasu w porównaniu do pętli for. W PowerShell 4.0 i nowszych wersjach metoda ForEach zapewnia jeszcze większą wydajność.

Składnia pętli ForEach

Poniżej znajduje się składnia

foreach ($ in $)
(


)

W powyższej składni możemy zobaczyć, że za każdym razem, gdy zostanie wybrany jeden element z Actualarray, ten element zostanie przetworzony w pętli foreach. Jeśli $ jest puste lub nie ma w nim żadnego elementu, to nie pójdzie na wykonanie instrukcji. Program PowerShell automatycznie tworzy zmienną $ po uruchomieniu pętli Foreach. Na przykład, pętla Foreach w poniższym przykładzie wyświetla wartości w tablicy $ students. W pętli for musieliśmy napisać logikę, aby sprawdzić, czy tablica jest pusta, czy nie, pętla foreach wykonuje blok instrukcji, jeśli w tablicy jest jakiś element.

Kod:

$students = ""
PS /home/ranjan> foreach ($student in $students)
(
Write-Host $student
)
output nothing, which means checking of array elements attributes are done internally by foreach loops.
$students = "ajay", "vijay", "ranjan", "akash", ”vikash”
foreach ($student in $students)
(
Write-Host $student
)

Ekrany wyjściowe i kody:

Schemat przepływu dla pętli PowerShell ForEach

Poniżej znajduje się schemat przepływu dla pętli PowerShell ForEach:

Objaśnienie powyższego schematu przepływu : Powyższy schemat przepływu bardzo wyraźnie reprezentuje przepływ. Po rozpoczęciu wykonywania najpierw sprawdzi dane (sprawdzając, czy element jest w tablicy), czy pusta pętla się zatrzyma. Ale jeśli Dane tam są, kontynuuje wykonywanie i wykonuje instrukcję 1, instrukcję 2, instrukcję 3 do ostatnich danych tablicy. Gdy tablica zostanie pusta, zatrzymaj wykonywanie.

Wynik:

Wyjaśnienie powyższego wyniku: Powyższy ekran pokazuje, że jeśli w tablicy były dwa atrybuty, to drukowałoby dwa razy, cześć, ale jeśli $ studentów stworzyliśmy jako pustą tablicę, nie drukujemy hello, oznacza to, że w przypadku dowolnego atrybutu jest dostępny wewnątrz $ tablica studentów, niż zamierza wykonać blok instrukcji, w przeciwnym razie nie zostanie wykonana.

Jak działa pętla ForEach w PowerShell?

Załóżmy, że mamy 4 elementy i chcemy pomnożyć każdą liczbę przez pięć. Załóżmy, że mamy $ a, $ b, $ c, $ d i musimy pomnożyć każdy z 5, więc co zrobimy, spójrz poniżej przykład:

Przykładowy kod:

$a=2, $b=4, $c=9, $d=5
$a * 5 =10, $b * $5=20, $c * 5=45, $d*5=25

Stąd mamy nasz wynik. Ale dobrze było, dopóki mamy tylko 4 elementy do pomnożenia przez 5, załóżmy, że będzie 10000 elementów, które trzeba pomnożyć przez 5, to byłoby bardzo żmudne zadanie pisać dla każdego.

Więc jakie byłoby na to łatwe rozwiązanie? Wszystko, co musimy zrobić, to stworzyć tablicę ze wszystkimi naszymi elementami i przekazać tablicę przez foreach i pomnożyć każdy element przez 5. Aby pomnożyć liczbę pięć do każdego elementu w tablicy, musimy przejść przez tablicę za pomocą polecenia ForEach.

Oto cały skrypt:

Kod:

$a = 2, $b = 4, $c = 9, $d =5
$f = $a, $b, $c, $d
Foreach ($i in $f)
(
$i * 5
)

Wynik:

Objaśnienie powyższego kodu: W powyższych przykładach możemy zdefiniować jedną zmienną $ f i przypisać jej wszystkie 4 zmienne, co czyni ją tablicą. Na koniec przekazujemy go z pętli foreach, która dała nam wynik 10, 20, 45, 25. W ten sposób ułatwiamy nasze życie, ponieważ w prawdziwym życiu istniałyby setki tysięcy rekordów, które trzeba zmodyfikować, więc nie możemy tego robić jeden po drugim, więc używamy pętli foreach, aby sobie z tym poradzić. Wystarczy uruchomić raz i zmodyfikować tyle rekordów, ile chcesz.

Przykłady w PowerShell ForEach Loop

Poniżej znajduje się przykład w PowerShell ForEach Loop:

Przykład 1

Zapętlaj tablicę ciągów zawierających nazwiska uczniów i znajdź długość każdego łańcucha wewnątrz tablicy.

Kod:

$students = @("Ranjan", "Ajay", ”Vijay", "Sujit", "John", "Rakesh", ”Hari”)
foreach ($student in $students) (
"$student = " + $student.length
)

Wyjście: Ranjan = 6, Ajay = 4, Vijay = 5, Sujit = 5, John = 4, Rakesh = 6, Hari = 4.

Przykład nr 2

Pozwól, że dam ci jeden przykład z życia: Podczas egzaminów widziałeś 30 punktów na 100, które były zaliczane. Przypuśćmy, że istnieją luki ucznia i istnieje jedna zasada, jeśli któryś z uczniów otrzyma 27 punktów, daje mu 30 punktów, co oznacza po prostu dodać 3 dodatkowe punkty do jego 27 punktów. Pętlimy więc przez szereg ocen studentów i dodajemy 3 oceny, jeśli ich oceny to 27, i pozwalamy im zdać egzaminy, ponieważ 30 ocen to oceny pozytywne.

Kod:

$marks (34, 39, 49, 12, 27, 80, 23, 88, 27)
foreach ($mark in $marks) (
if ($mark -eq 27) ( $mark+3 ) else( $num)
)

Rezultat: Było dwóch studentów, ale ręczne sprawdzenie w setkach tysięcy studentów pod kątem 27 ocen było nieco żmudnym zadaniem, które rozwiązaliśmy.

Przykład nr 3

Kolejny przykład: Znajdź wszystkie liczby od 1 do 100, które są całkowicie podzielne przez 10.

Kod:

$numbers (1..100)
foreach ($number in $numbers)
(
if ( -not ($number % 10) )
(
"$number is totally divisible by 10"
)
)
10 is totally divisible by 10
20 is totally divisible by 10
30 is totally divisible by 10
40 is totally divisible by 10
50 is totally divisible by 10
60 is totally divisible by 10
70 is totally divisible by 10
80 is totally divisible by 10
90 is totally divisible by 10
100 is totally divisible by 10

Wynik:

Wniosek

Podsumowując, instrukcja foreach loop pozwala nam na wykonanie instrukcji lub grupy instrukcji wiele razy wraz ze sprawdzaniem dostępności elementu w tablicy, co oznacza uruchomienie następnej instrukcji, jeśli są jakieś elementy. Pętle Foreach działają tylko wtedy, gdy wewnątrz tablicy znajdują się jakieś elementy, co odróżnia je od pętli for.

Polecane artykuły

To jest przewodnik po PowerShell ForEach Loop. Tutaj omawiamy, jak działa ForEach Loop w PowerShell?, z różnymi przykładami. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej -

  1. Dla pętli w R.
  2. Co to jest PowerShell
  3. Zastosowania PowerShell
  4. Jak zainstalować PowerShell
  5. Tablica w PowerShell | Przykłady

Kategoria: