Articles

Instrukcja PowerShell ForEach loop Tutorial z przykładami

ForEach jest instrukcją PowerShell używaną do iteracji lub pętli nad podaną listą, tablicą lub kolekcją obiektów, łańcuchów znaków, liczb, itp. ForEach jest bardzo popularnym mechanizmem pętli, w którym możemy używać różnych przypadków, takich jak pętla przez pliki, liczby, ciągi, procesy itp. Powershell w wersji 4.0 wprowadza pewne ulepszenia wydajności w pętliForEach.

składnia PowerShell ForEach

Instrukcja Foreach ma następującą składnię, w której używamyITEMCOLLECTION ICODE-BLOCK.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • ITEM to pojedyncza wartość lub obiekt, który zmienia się podczas każdej iteracji.
  • kolekcja jest tablicą, kolekcją, listą wartości lub obiektami takimi jak 1,2,3,4.
  • blok kodu jest blokiem, w którym działa prawdziwa operacja, która zazwyczaj używa elementu. Blok ten może być jedną lub wieloma liniami.

Foreach poprzez tablicę łańcuchów

w prosty sposób możemy iterować nad podaną listą tablicy łańcuchów. Iterację nad tablicą o nazwie „cities”, która zawiera wiele nazw miast. Wydrukujemy każdą nazwę miasta komendą „echo”, jak poniżej.

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
ForeachThrough an Array of Strings

możemy sprawdź, czy każda nazwa miasta jest drukowana w terminalu PowerShell w jednej linii.

Foreach poprzez zbiór liczb

w poprzednim przykładzie zapętliliśmy daną listę łańcuchów. Możemy również iterować lub zapętlić listę liczb. Utworzymy tablicę o nazwie numbersI nad każdą pozycją w tej tablicy liczbowej wykonamy iterację.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach Through an Collection of Numbers

$_ usage

podczas używania niektórych cmdletów do przekierowania wyjścia cmdleta do foreach możemy użyć „$” dla każdego elementu lub obiektu. Na przykład, jeśli użyjemy polecenia „Get-Process”, każdy element lub proces będzie przypisany do $ w każdej iteracji. Możemy określić atrybut jak nazwa $.NameI wydrukować jak poniżej.

PS> Get-Process | ForEach-Object {$_.ProcessName}
$_ Usage

We can also print multiple attributes in foreach by delimiting them with comma.

PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}
$_ Usage

Foreach Through Files

We can also loop through files by using Get-ChildItem cmdlet. Get-ChildItem wyświetli listę plików i folderów, takich jak dir polecenie MSDOS. To wyjście zostanie zapisane w konsoli poleceniemEcho.

foreach($file in Get-ChildItem) {Echo $file}
Foreach Through Files

foreach poprzez konkretne rozszerzenia plików, takie jak Bat

, możemy wyszczególnić określone rozszerzenie. Rozszerzenie zazwyczaj zapewnia Typ pliku, taki jak tekst, avi, mkv, mp3, doc itp. W tym przykładzie podamy tylko *.bat lub pliki Bat.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach poprzez konkretne rozszerzenia plików, takie jak Bat

widzimy, że tylko pliki takie jak test.bat I autoexec.bat będą wyświetlane.

Foreach nad plikiem CSV

pliki CSV służą do przechowywania danych tekstowych w sposób uporządkowany. Możemy łatwo foreach w każdej linii pliku CSV jak poniżej. W tym przykładzie odczytamy plik IP CSV i przekażemy do foreach, aby wydrukować konsolę Powershell.

$IPs = (Get-Content IP.csv).split(",")foreach ( $IP in $IPs){ echo $IP}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *