Articles

Powershell ForEach Loop Statement Tutorial with Examples

ForEach ist eine PowerShell-Anweisung, mit der Iterationen oder Schleifen über die angegebene Liste, das Array oder die Sammlung von Objekten, Zeichenfolgen, Zahlen usw. ausgeführt werden. ForEach ist ein sehr beliebter Schleifenmechanismus, bei dem wir verschiedene Fälle wie das Durchlaufen von Dateien, Zahlen, Zeichenfolgen, Prozessen usw. verwenden können. Powershell Version 4.0 bringt einige Leistungsverbesserungen für die ForEach Schleife.

PowerShell ForEach Syntax

Foreach Anweisung hat die folgende Syntax, wo wir ITEMCOLLECTION und CODE-BLOCK .

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • ITEM ist ein einzelner Wert oder ein Objekt, das sich bei jeder Iteration ändert.
  • COLLECTION ist ein Array, eine Sammlung, eine Liste von Werten oder Objekten wie 1,2,3,4.
  • CODEBLOCK ist der Block, in dem die reale Operation ausgeführt wird, die im Allgemeinen ITEM verwendet. Dieser Block kann einzelne oder mehrere Zeilen sein.

Foreach Durch Ein Array von Strings

Auf einfache Weise können wir über die angegebene Liste des String-Arrays iterieren. Wir iterieren über das Array mit dem Namen „cities“, das mehrere Städtenamen enthält. Wir werden jeden Stadtnamen mit dem Befehl „echo“ wie unten drucken.

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

Wir können sehen, dass jeder Stadtname auf der powershell-Terminal in einer einzigen Zeile.

Foreach Durch eine Sammlung von Zahlen

Im vorherigen Beispiel haben wir eine bestimmte Liste von Zeichenfolgen durchlaufen. Wir können auch eine Liste von Zahlen iterieren oder durchlaufen. Wir erstellen ein Array mit dem Namen numbers und iterieren über jedes Element in diesem Zahlenarray.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach Durch Eine Sammlung von Zahlen

$_ Usage

Wenn Sie einige Cmdlets verwenden, um die Ausgabe des Cmdlets an Foreach umzuleiten, können wir „$“ für jedes Element oder Objekt verwenden. Wenn wir beispielsweise das Cmdlet „Get-Process“ verwenden, wird jedem Element oder Prozess in jeder Iteration die $ zugewiesen. Wir können das Attribut wie Name $.Name angeben und wie unten drucken.

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 listet Dateien und Ordner wie dir MSDOS-Befehl auf. Diese Ausgabe wird mit dem Befehl Echo in die Konsole geschrieben.

foreach($file in Get-ChildItem) {Echo $file}
Foreach Durch Dateien

Foreach Durch bestimmte Dateierweiterungen wie Bat

Wir können die angegebene Erweiterung speziell auflisten. Die Erweiterung bietet im Allgemeinen den Dateityp wie Text, AVI, MKV, MP3, doc usw. In diesem Beispiel listen wir nur *.bat oder Bat-Dateien auf.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach Durch bestimmte Dateierweiterungen Wie Bat

Wir können sehen, dass nur Dateien wie

test.bat

und autoexec.bat aufgelistet.

Foreach über CSV-Datei

CSV-Dateien werden verwendet, um Textdaten strukturiert zu speichern. Wir können leicht in jeder Zeile einer CSV-Datei wie unten foreach . In diesem Beispiel werden wir eine IP-CSV-Datei lesen und an die foreach senden, um die Powershell-Konsole zu drucken.

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.