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.
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!