Wie man aus einem Foreach-Objekt in PowerShell aussteigt

  1. Verwenden Sie die break-Bedingung, um aus ForEach-Object in PowerShell auszutreten
  2. Verwenden Sie if und break, um aus ForEach-Object in PowerShell auszutreten
  3. Verwenden Sie if und return, um aus ForEach-Object in PowerShell auszutreten
  4. Verwenden Sie if und continue, um aus ForEach-Object in PowerShell auszutreten
  5. Fazit
Wie man aus einem Foreach-Objekt in PowerShell aussteigt

Das ForEach-Object Cmdlet ermöglicht es dem Benutzer, durch Sammlungen zu iterieren und gegen jedes Element in einer Sammlung von Eingabeobjekten zu agieren. In ForEach-Object werden die Eingabeobjekte an das Cmdlet weitergeleitet oder mit dem Parameter -InputObject angegeben.

Es gibt zwei verschiedene Möglichkeiten, einen ForEach-Object Befehl in PowerShell zu konstruieren: Skriptblock und Betriebserklärung. Das ForEach-Object Cmdlet führt den Skriptblock oder die Betriebserklärung jedes Eingabeobjekts aus.

Verwenden Sie einen Skriptblock, um die Operation anzugeben. Die Variable $_ wird innerhalb des Skriptblocks verwendet, um das aktuelle Eingabeobjekt darzustellen.

Der Skriptblock kann beliebigen PowerShell-Skript enthalten. Zum Beispiel ruft der folgende Befehl den Wert der Name-Eigenschaft jedes Cmdlets, Funktionen und der auf dem Computer installierten Aliase ab.

Get-Command | ForEach-Object { $_.Name }

Eine andere Möglichkeit, den ForEach-Object Befehl zu konstruieren, besteht darin, die Betriebserklärung zu verwenden. Sie können einen Eigenschaftenwert angeben oder eine Methode mit der Betriebserklärung aufrufen.

Get-Command | ForEach-Object Name

Manchmal gibt es Situationen, in denen Sie aus dem ForEach-Object aussteigen möchten, aber es funktioniert anders als die ForEach-Anweisung. In ForEach-Object wird die Anweisung ausgeführt, sobald jedes Objekt produziert wird.

In der ForEach-Anweisung werden alle Objekte gesammelt, bevor die Schleife ausgeführt wird. Der ForEach-Object ist ein Cmdlet und keine tatsächliche Schleife.

Wenn Sie break oder continue verwenden, um die Schleife zu verlassen, wird das gesamte Skript beendet, anstatt die nachfolgende Anweisung zu überspringen. Es ist jedoch möglich, aus dem ForEach-Object Objekt unter Verwendung bestimmter Bedingungen in PowerShell auszusteigen.

Verwenden Sie die break-Bedingung, um aus ForEach-Object in PowerShell auszutreten

In PowerShell wird die foreach-object Schleife häufig verwendet, um über jedes Element in einer Sammlung oder Pipeline zu iterieren. Gelegentlich entsteht die Notwendigkeit, diese Schleife vorzeitig basierend auf bestimmten Bedingungen zu verlassen.

Die break-Anweisung bietet eine unkomplizierte Möglichkeit, dies zu erreichen, indem sie die Schleife sofort beendet, wenn eine bestimmte Bedingung erfüllt ist.

$numbers = "one", "two", "three", "four", "five"
$Break = $False;

$numbers | Where-Object { $Break -eq $False } | ForEach-Object {
    $Break = $_ -eq "three";
    Write-Host "The number is $_.";
}

In diesem Code-Snippet initialisieren wir ein Array $numbers, das Strings enthält, die Zahlen darstellen. Wir setzen $Break zunächst auf $False.

Innerhalb der foreach-object Schleife verwenden wir Where-Object, um Elemente basierend auf der $Break-Variable zu filtern. Wenn $Break $False ist, setzt sich die Schleife fort; andernfalls stoppt sie.

Innerhalb der Schleife überprüfen wir, ob das aktuelle Element gleich three ist. Wenn ja, setzen wir $Break auf $True, was die Schleife beendet.

Ausgabe:

Ausgang aus foreach-Objekt in PowerShell - Ausgabe 1

Verwenden Sie if und break, um aus ForEach-Object in PowerShell auszutreten

Manchmal besteht die Notwendigkeit, diese Schleife vorzeitig basierend auf bestimmten Bedingungen zu verlassen. Die if-Methode bietet einen unkomplizierten Ansatz zum Erreichen dieser Aufgabe, indem sie eine Bedingung innerhalb der Schleife bewertet und einen Ausstieg auslöst, wenn die Bedingung erfüllt ist.

In dieser Methode müssen Sie einen leeren Wert in einer Sammlung von Objekten verwenden, um aus ForEach-Object in PowerShell auszutreten. Zum Beispiel können Sie die if-Bedingung verwenden, um aus ForEach-Object auszutreten.

$numbers = "one", "two", "three", "", "four"

$numbers | ForEach-Object {
    if ($_ -eq "") {
        break;
    }
    Write-Host "The number is $_."
}

Im bereitgestellten Code-Snippet initialisieren wir ein Array $numbers, das Strings enthält, die Zahlen darstellen. Innerhalb der foreach-object Schleife iterieren wir über jedes Element im Array.

Mit der if-Anweisung prüfen wir, ob das aktuelle Element $_ ein leerer String ist. Wenn die Bedingung als wahr bewertet wird, verwenden wir break, um sofort aus der Schleife auszutreten.

Andernfalls setzt sich die Schleife fort und wir geben die aktuelle Zahl mit Write-Host aus.

Ausgabe:

Ausgang aus foreach-Objekt in PowerShell - Ausgabe 2

Verwenden Sie if und return, um aus ForEach-Object in PowerShell auszutreten

Das Verlassen einer foreach-object Schleife in PowerShell unter Verwendung der Kombination aus if und return ermöglicht die vorzeitige Beendigung der Schleife basierend auf bestimmten Bedingungen. Diese Methode ist besonders nützlich, wenn Sie die Ausführung der Schleife anhalten und die Kontrolle an den Aufrufer zurückgeben müssen, wenn eine bestimmte Bedingung erfüllt ist.

Innerhalb der Schleife wird eine if-Anweisung verwendet, um die Bedingung für das Verlassen der Schleife zu bewerten. Wenn die Bedingung als wahr bewertet wird, wird die return-Anweisung ausgeführt, die die Ausführung der Schleife sofort beendet und die Kontrolle an den Aufrufer zurückgibt.

$numbers = "one", "two", "three", "four", "five"

$numbers | ForEach-Object {
    if ($_ -eq "three") {
        return
    }
    Write-Host "The number is $_."
}

Im bereitgestellten Code-Snippet initialisieren wir ein Array $numbers, das Strings enthält, die Zahlen darstellen. Innerhalb der foreach-object Schleife iterieren wir über jedes Element im Array.

Mit der if-Anweisung prüfen wir, ob das aktuelle Element $_ gleich three ist. Wenn die Bedingung als wahr bewertet wird, verwenden wir return, um sofort aus der Schleife auszutreten.

Andernfalls setzt sich die Schleife fort und wir geben die aktuelle Zahl mit Write-Host aus.

Ausgabe:

Ausgang aus foreach-Objekt in PowerShell - Ausgabe 3

Verwenden Sie if und continue, um aus ForEach-Object in PowerShell auszutreten

In PowerShell wird die continue-Anweisung verwendet, um den Rest der aktuellen Iteration einer Schleife zu überspringen und zur nächsten Iteration überzugehen. Während sie hauptsächlich in Schleifen verwendet wird, um spezifische Iterationen zu überspringen, kann continue auch verwendet werden, um eine Art von Schleifenausgang innerhalb einer foreach-object Schleife zu implementieren.

Durch strategisches Platzieren der continue-Anweisung innerhalb der Schleife und Einbeziehung bedingter Logik können Sie eine vorzeitige Beendigung der Schleife basierend auf bestimmten Bedingungen erreichen.

$numbers = 1..10

$numbers | ForEach-Object {
    if ($_ -eq 5) {
        continue
    }
    Write-Host "Number: $_"
}

Im bereitgestellten Codebeispiel initialisieren wir ein Array $numbers, das Zahlen von 1 bis 10 enthält. Innerhalb der foreach-object Schleife iterieren wir über jede Zahl im Array.

Mit der if-Anweisung prüfen wir, ob die aktuelle Zahl gleich 5 ist. Wenn die Bedingung als wahr bewertet wird, wird die continue-Anweisung ausgeführt, was dazu führt, dass die Schleife die aktuelle Iteration überspringt und zur nächsten übergeht.

Dies erreicht effektiv die vorzeitige Beendigung der Schleife, wenn die angegebene Bedingung erfüllt ist.

Ausgabe:

Ausgang aus foreach-Objekt in Powershell - Ausgabe 4

Fazit

Zusammenfassend lässt sich sagen, dass das ForEach-Object Cmdlet in PowerShell die Iteration durch Sammlungen erleichtert und Operationen an jedem Element einzeln zulässt. Wir haben verschiedene Methoden untersucht, um vorzeitig aus einer ForEach-Object Schleife auszutreten, einschließlich der Verwendung von break, return und continue.

Während break und continue direkte Kontrollflüsse innerhalb der Schleife bieten, bietet return einen alternativen Ansatz, um die Schleife zu verlassen und zum Aufrufer zurückzukehren. Jede Methode hat ihre eigenen Anwendungsfälle und Vorteile und bietet Flexibilität bei der Skriptausführung.

Zukünftig können Benutzer ihr Verständnis vertiefen, indem sie mit diesen Methoden in verschiedenen Szenarien experimentieren, ihre Nuancen erkunden und ihre Anwendung in PowerShell-Skripten meistern.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - PowerShell Object