PowerShell Foreach Loop

PowerShell Foreach Loop
W programowaniu pętla to prosta, ale potężna koncepcja. Pętla to powtórzenie zestawu instrukcji, chyba że spełniony jest określony warunek. Właściwa pętla może zaoszczędzić czas i zwiększyć wydajność kodu. PowerShell, będąc językiem scenariusza, obsługuje różne formy pętli.

W tym przewodniku sprawdź, jak korzystać z pętli foreach w PowerShell.

Pętle PowerShell

Zasadniczo wszystkie pętle są takie same. Jednak dla lepszego wrażenia kodowania i czytelności różne języki programowania wdrażają koncepcję pętli na różne sposoby. W rzeczywistości ten sam język może obsługiwać wiele rodzajów pętli, każda z unikalną strukturą.

PowerShell obsługuje kilka rodzajów pętli.

  • Dla: standardowa pętla do wykonywania niektórych zadań określona liczba razy.
  • podczas: ciągle wykonuje zestaw operacji, dopóki warunki nie zostaną spełnione.
  • Zrób while: pętla działa tak długo, jak jest to warunek. Jednak zawsze będzie wykonywać pierwszy raz.
  • Do-u-until: prawie działa podobnie. Jedyną różnicą jest to, że wykonuje się tylko wtedy, gdy dany warunek nie jest prawdziwy.
  • Foreach-obiekty: Ta pętla wykonuje operację dla każdego obiektu wejściowego.

Jak sugeruje tytuł artykułu, będziemy patrzeć na pętlę foreach.

Foreach pętla w PowerShell

Kod struktury pętli foreach jest następujący.

Foreach (pozycja w kolekcji)


Tutaj,

  • Pozycja: To pojedyncza wartość lub obiekt, który zmienia się z każdą iteracją.
  • Kolekcja: Może to być tablica, lista wartości, kolekcja lub obiekty.
  • : To blok kodu, który działa po spełnieniu warunku pętli. Zasadniczo używa przedmiotu.

Foreach jest jedną z najczęstszych i najprostszych pętli PowerShell. Odczytuje całą kolekcję elementów, a dla każdego elementu wykonuje zdefiniowane operacje.

Można go używać w wielu sytuacjach, na przykład, pracując nad zawartością katalogu.

Foreach pętla w praktyce

W tej sekcji przyjrzymy się niektórym przykładowym implementacjom pętli foreach. Aby wykonać kody, przygotowałem już pusty skrypt PowerShell.

$ nano foreach-pętla.PS1

Shebang wyglądałby mniej więcej tak.

$ #!/Snap/bin/PowerShell

Zaznacz plik skryptu PowerShell jako wykonywalny.

$ chmod +x foreach-pętla.PS1

Foreach za pośrednictwem tablicy ciągu
Podczas pierwszej demonstracji będziemy wdrożyć pętlę foreach, która odczytuje z szeregu nazw miast i drukuje nazwy miast na ekranie.

Najpierw zadeklaruj tablicę ciągów.

$ CITES = („Tokyo”, „New York”, „Moskwa”, „Londyn”, „Sydney”)

Teraz wdrożyć pętlę foreach, aby pracować z każdym elementem tablicy.

Foreach (miasto $ w miastach)

Echo $ miasto

Przetestuj kod, uruchamiając skrypt.

$ ./Foreach-pętla.PS1

Foreach poprzez zbiór liczb
W tym przykładzie zaimplementujemy pętlę foreach podobną do poprzedniej. Różnica polega na tym, że zamiast tego przejdzie przez szereg liczb.

Zadekorować tablicę numerów.

$ liczb = (9,8,7,6,5,4,3,2,1)

Teraz wdrożyć pętlę foreach, aby wydrukować liczby jeden po drugim.

Foreach (numer $ w liczbach $)

Echo $ liczba

Umieśćmy kod w działaniu.

$ ./Foreach-pętla.PS1

Foreach za pośrednictwem plików
Jest to jeden z najczęstszych scenariuszy do korzystania z pętli foreach. Za pomocą innych CMDLETS możemy uzyskać konkretne informacje o niektórych katalogach/plikach i użyć tych informacji do wykonywania niezbędnych działań.

W tym przykładzie pętla foreach sprawdzi zawartość katalogu/home/viktor/pulpit/próbka_dir i wydrukuj nazwę plików.

Foreach ($ plik w get -childitem -recurse -path/home/viktor/komputer/próbka_dir)

echo $ plik

Uruchom kod.

$ ./Foreach-pętla.PS1

Tutaj cmdlet Get-ChildItem Otrzymuje elementy w opisanej lokalizacji. Flaga „-path” opisuje, który katalog należy przyjrzeć. Jeśli istnieje wiele poziomów podwozie, wówczas użycie „-recurse” dostanie wszystkie elementy dziecięce rekurencyjnie. Jeśli chcesz powrócić do pewnej głębokości, możesz również użyć parametru „-depresji”. Sprawdź więcej Get-ChildItem.

Możemy również dostosować kod do wyszukiwania tylko określonych rozszerzeń plików.

FOREACH ($ plik w get -childitem -recurse -path/home/viktor/teSktop/scosh_dir/*.tekst)

echo $ plik

Foreach nad CSV
Plik CSV to baza danych tekstowych, każda wartość oddzielona przez ograniczenie (przeważnie przecinka). Jest to prosta, ale skuteczna struktura do przechowywania strukturalnych danych w formacie tekstowym. Format CSV jest używany przez różne aplikacje i silniki bazy danych dla wygody i łatwości użytkowania.

Możemy użyć pętli foreach do pracy z indywidualnymi wartościami pliku CSV i odpowiednio podjąć działania. Właśnie to właśnie to robi.

$ wartości = (get-content/home/viktor/próbka.CSV) [0].podział(",")
foreach ($ wartość w wartości $)
echo $ wartość

Metoda foreach
Do tej pory widzieliśmy pętlę foreach w akcji, prawda? W Powershell pojawia się również jako metoda foreach (). Zaczynając od PowerShell V4, ta metoda istnieje na tablicach lub zbiorach obiektów. Metoda ma standardowy blok skryptu jako parametr zawierający działania, które należy podjąć dla każdej iteracji.

Rzućmy okiem na metodę foreach () w akcji. Najpierw utwórz tablicę przykładową.

$ liczb = (2,4,8,16,32,64,128,256 512)

Teraz możemy wywołać metodę i opisać proste polecenie ECHO według iteracji.

$ liczby.Dla każdego(
Echo $ _
)

Foreach-obiekt
Pętla foreach może również bezpośrednio pracować z obiektami. Aby to zrobić, istnieje dedykowana cmdlet o nazwie Foreach-Owoct. Zajmuje obiekt jako dane wejściowe i itera przez jego elementy.

W następnym przykładzie przeszukamy konkretny katalog „dla„.pliki txt ”i użyj foreach-obiekt do działania w oparciu o każdy element wyniku wyszukiwania.

$ Names = get -childitem -recurse/home/viktor/teSktop/Sample_dir/*.tekst
$ imiona |
Foreach-obiek
Echo $ _

Jak widać, podstawowa struktura foreach-obiekt jest dość podobna. Jedyną różnicą jest to, że możesz przekazać obiekt za pomocą rurociągu.

Końcowe przemyślenia

Pętla Foreach w PowerShell to prosta, ale skuteczna i potężna pętla. Może działać na podstawie obiektów, tablic lub poszczególnych elementów. Ten przewodnik pokazuje niektóre z powszechnych wdrożeń pętli foreach.

Oprócz pętli foreach, PowerShell obsługuje inne standardowe pętle, takie jak pętla. Sprawdź ten przewodnik dla pętli w PowerShell.

Szczęśliwy komputer!