PowerShell lernen Schritt für Schritt – Teil 4: Bedingungen und Schleifen

Aktualisiert am 10.11.2026 · Lesezeit ca. 4 Min. · Niveau: Anfänger · von Viktor Tribus, IT-Tribus Nideggen

In diesem Beitrag vertiefen wir unsere PowerShell-Kompetenz, indem wir uns mit bedingten Anweisungen (if) sowie Schleifen konzentrieren. Wenn Sie den vorherigen Artikel PowerShell lernen Schritt für Schritt – Teil 3: Variablen und Arrays gelesen haben, wissen Sie bereits, wie man Variablen und Arrays verwendet. Nun werden wir diese Kenntnisse erweitern, um komplexe Automatisierungsanwendungen zu entwickeln.

Was Sie in diesem Beitrag lernen

  • Einführung in bedingte Anweisungen (if).
  • Verwendung von Schleifen (foreach).
  • Syntax und Funktionsweise von Funktionen.
  • Erstellen eines einfachen Skripts mit Bedingungen und Schleifen.

Die Lernzeit beträgt etwa 20 Minuten. Sie benötigen eine Installation von PowerShell auf Ihrem Computer.

Das Prinzip einfach erklärt

Denken Sie an einen Alltagsszenario, in dem Sie entscheiden müssen: Wenn es regnet, nimmst du einen Schirm mit; wenn nicht, gehst du ohne. In der Programmierung ist eine bedingte Anweisung (if) das Äquivalent dazu. Wenn eine bestimmte Bedingung erfüllt ist, wird ein Block von Befehlen ausgeführt.

Eine Schleife dient dazu, bestimmten Code mehrmals auszuführen. Nehmen wir an, Sie wollen alle Namen einer Liste grüßen. Ohne Schleifen müssten Sie für jeden Namen eine eigene Anweisung schreiben – mit Schleifen kann das Programm automatisch durch die gesamte Liste gehen.

Ihr erstes Beispiel

Öffnen Sie PowerShell und geben Sie den folgenden Code ein, um einen einfachen if-Block zu sehen:

PowerShell (als Administrator)
$regnet = $true

if ($regnet)  else 

Hier wird die Variable $regnet auf True gesetzt. Die Anweisung if ($regnet) überprüft, ob diese Bedingung erfüllt ist: Wenn es wahr (true) ist, wird „Nimm deinen Schirm mit." ausgegeben; andernfalls „Es regnet nicht, geh ohne Schirm."

Schritt für Schritt erweitern

Stufe 1: Ein einfaches foreach-Beispiel

PowerShell (als Administrator)
$namen = @("Anna", "Benjamin", "Clemens")
foreach ($name in $namen) 

Hier wird eine Liste von Namen erstellt und mit foreach durchlaufen. Für jeden Namen wird die Begrüßung „Hallo, [Name]!" ausgegeben.

Stufe 2: if in einer foreach-Schleife verwenden

PowerShell (als Administrator)
$namen = @("Anna", "Benjamin", "Clemens")
foreach ($name in $namen) 

Hier wird geprüft, ob der Name Anna ist. Wenn ja, gibt es eine spezielle Nachricht aus; andernfalls die Standardbegrüßung.

Stufe 3: Funktionen definieren und aufrufen

PowerShell (als Administrator)
function Begruesse 

$namen = @("Anna", "Benjamin", "Clemens")
foreach ($name in $namen) 

Mit function definieren wir eine Funktion namens Begruesse, die einen Namen als Parameter erhält und diesen begrüßt. Diese Funktion wird dann innerhalb der foreach-Schleife aufgerufen.

Typische Anfängerfehler

Fehlermeldung: „Unexpected token ‚foreach‘ in expression or statement.“

Dies bedeutet, dass PowerShell die Syntax nicht erkennt. Überprüfen Sie, ob Ihre Schleifen korrekt aufgebaut sind und alle öffnenden Klammern auch geschlossen werden.

Fehlermeldung: „Cannot bind argument to parameter ’name‘ because it is null.“

Dieser Fehler tritt auf, wenn Sie eine Funktion aufrufen und einen Parameter vergessen haben. Stellen Sie sicher, dass alle erwarteten Parameter übergeben werden.

Fehlermeldung: „The running command stopped because the preference variable „ErrorActionPreference“ or common parameter is set to Stop: Cannot index into a null array.“

Dieser Fehler deutet auf ein Problem mit einer leeren Liste hin. Stellen Sie sicher, dass Ihre Arrays oder Listen nicht leer sind und die erwarteten Werte enthalten.

Übung für Sie

Schreiben Sie eine Funktion GruesseAlle, die einen Array von Namen als Parameter erhält und jeden Namen grüßt, aber nur wenn der Name länger als 4 Zeichen ist. Verwenden Sie hierfür if in einer foreach-Schleife.

Lösungsvorschlag:

PowerShell (als Administrator)
function GruesseAlle 

$namen = @("Anna", "Benjamin", "Clemens")
GruesseAlle -namen $namen

Spickzettel

Befehl/Syntax Bedeutung Beispiel
if ($bedingung) Führt den Codeblock aus, wenn die Bedingung wahr ist. if ($age -gt 18)
foreach ($element in $liste) Iteriert über jede Element der Liste und führt den Codeblock aus. foreach ($name in $namen)
function Name Definiert eine neue Funktion mit Parametern. function Begruesse

Häufige Fragen

Kann ich mehrere Bedingungen in einem if verwenden?

Ja, Sie können mehrere Bedingungen kombinieren. Zum Beispiel: if ($age -gt 18 -and $age -lt 65) .

Wie kann ich eine Schleife vorzeitig beenden?

Verwenden Sie den Befehl break, um die aktuelle Schleife zu verlassen. Zum Beispiel: foreach ($i in 1..10) .

Was passiert, wenn ich eine Funktion ohne Parameter aufrufe?

Wenn die Funktion Parameter erwartet und diese nicht übergeben werden, wird ein Fehler ausgelöst. Stellen Sie sicher, dass alle erforderlichen Parameter vorhanden sind.

Kann ich mehrere Schleifen ineinander schachteln?

Ja, Sie können eine Schleife innerhalb einer anderen Schleife verwenden (Nested-Schleifen). Zum Beispiel: foreach ($i in 1..3) .

Fazit und nächster Schritt

In diesem Teil haben Sie gelernt, wie Sie bedingte Anweisungen (if), Schleifen (foreach) und Funktionen in PowerShell verwenden können. Diese Grundlagen sind essentiell für die Entwicklung komplexerer Skripte.

Im nächsten Teil „PowerShell lernen Schritt für Schritt – Teil 5: Das erste nützliche Skript mit Fehlerbehandlung“ werden wir uns mit der Erstellung eines praktischen Skripts befassen und wie Sie Fehler behandeln können. IT-Tribus in Nideggen kann Ihnen dabei helfen, diese Konzepte in Ihre täglichen Aufgaben zu integrieren.

Serie: PowerShell lernen Schritt für Schritt – Teil 4 von 5

← Vorheriger Teil: PowerShell lernen Schritt für Schritt – Teil 3: Variablen und Arrays

→ Als Nächstes: Teil 5: Das erste nützliche Skript mit Fehlerbehandlung (erscheint in Kürze)

Quellen und weiterführende Informationen

Hinweis: Dieser Beitrag wurde am 10.11.2026 mit KI-Unterstützung erstellt, auf Basis der genannten Quellen eigenständig formuliert und redaktionell von IT-Tribus betreut. Alle Angaben ohne Gewähr – bitte prüfen Sie Befehle vor dem Einsatz in produktiven Umgebungen und legen Sie vorher eine Sicherung an.

Benötigen Sie Unterstützung bei PowerShell if foreach Funktionen?

IT-Tribus ist Ihr IT-Dienstleister aus Nideggen. Vor Ort helfen wir in Düren, im Kreis Düren und in der Region Aachen – Monitoring und Fernwartung mit NinjaOne bieten wir Unternehmen auch überregional an.

Kostenlose Erstanalyse anfordern
📞 02427 9099860