So verwendet man die PowerShell Foreach-Schleife

So verwendet man die PowerShell Foreach-Schleife

PowerShell Foreach und weitere Kontrollstrukturen

Die Windows PowerShell bietet viele Optionen, um sich schnell und einfach wesentliche Konfiguration anzeigen zu lassen. Aber wie liest man nun mehrere Objekte aus? Dazu dient die PowerShell foreach Schleife. Neben dieser speziellen Schleife gibt es aber auch noch die folgenden anderen Optionen.

Je nach Anwendung kommt die passende Schleife bzw. Kontrollstruktur zum Einsatz. In dieser Anleitung wird gezeigt, wie man die foreach Schleife in PowerShell verwendet.

Die erste Frage, welche man sich vermutlich stellt, ist, wann sollte man diese Art von Schleife verwenden?

Exkurs: Programmiergrundlagen zur PowerShell (Video)

Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf den Button unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Weitere Informationen
Windows PowerShell Programmiergrundlagen


Anwendung der powerShell foreach Schleife

Im Prinzip ist sie auch dafür dar, um eine bestimmte Anzahl an Array Elemente der Reihe nach auszulesen und weiterzuverarbeiten. Als praktische Anwendung könne man das Auslesen von Benutzer aus der Active Direcotry vorstellen.

Genau das ist im übrigen auch eine häufige Anwendung. Neben dem Auslesen wird diese Schleife aber auch in der Regel dafür verwendet, um z. B. Daten aus einer CSV Datei auszulesen und weiterzuverarbeiten. Also, wenn man viele Benutzerkonten mit einigen weiteren Parameter wie Profipfad etc. anlegen möchte.

Bevor wir aber diese Möglichkeit näher betrachten, möchte ich als Erstes die reguläre foreach-Schleife aufzeigen. Zunächst wird ein Array mit Werten gefüllt. Dieses wird anschließend über die foreach Schleife ausgelesen und bei jedem Durchgang weiterverarbeitet.

Bei der Konfiguration der ForEach-Schleife wird anschließend festgelegt, dass jeder Wert im Array mit der Variablen $wert angesprochen werden kann. Anschließend wird genau dieser Wert noch mit einer Zahl multipliziert und das Ergebnis im Terminal ausgegeben.

 $array = 2, 4, 6, 8, 10
 ForEach ($wert in $array) { $wert * 2 }

Auslesen von Objekten

Eine sehr interessante und vor allem wichtige Anwendung ist noch folgende. Es werden die Daten eines Cmdlets über die Pipeline an die foreach-Schleife zur Weiterverarbeitung übergeben.

Das bedeutet, die Objekte werden direkt weiterverarbeitet. Die Syntax ändern sich nur dahin gehend, dass die foreach-schleife jetzt nicht mehr an erster Stelle steht. Das Beispiel verdeutlicht diese Art der Schleifen-Anwendung.

Get-Process | ForEach {$count = 0} {$_.Name; $count++} {"Gesamt: $count
Prozesse."}

Folgende drei Schritte werden dabei durchgeführt:

  • Es wird für den Durchlauf eine Variable (hier $count mit dem Wert = 0) festgelegt.
  • Der nächst Block liefert dann die Aufgaben, welche durchgeführt werden muss
  • Der letzte Block gibt die Anweisung letztlich aus.
Anwendung der powerShell foreach Schleife
Anwendung der Foreach-Schleife

ForEach Schleife vs. ForEach-Object

Diese beiden Schleifentypen sehen sehr ähnlich aus. Allerdings haben sie einen wesentlichen Unterschied. Die vorherige Schleife erhält die Daten nicht zwingend über die Pipeline. Deswegen ist die Datenverarbeitung respektive Weiterverarbeitung in der Regel schneller.

Voraussetzung dafür ist natürlich, dass die Daten bereits in einer Variablen vorliegen. Grundsätzlich kann man sich merken, wenn die Daten nicht vorliegen, verwendet man die Foreach-Objekt Schleife, anderenfalls kann man die ForEach-Objekte Schleife anwenden.

Alle hier gezeigten Beispiel kannst du dir übrigens direkt auf Github kostenlos herunterladen und selbst testen. Auch gibt es in PowerShell einige Befehlsreferenzen, welche du dir ebenso kostenlos auf dem Blog downloaden kannst.

Zusätzlich kann ich dir auch den Kurs: Automatisierung mit PowerShell (1/3): Grundlagen* empfehlen. Hier lernst du alles nötige, was du für eine erfolgreiche Administration mit der Windows PowerShell benötigst.

Top Lektüre zum Erlernen der Windows PowerShell

Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 6.06.2024

5b5ece66eaad4bca8504151342d47463

Das könnte dich auch interessieren

Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte.


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Kommentar verfassen

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

×