Powershell foreach Loop

Powershell foreach Loop
In der Programmierung ist eine Schleife ein einfaches, aber leistungsfähiges Konzept. Eine Schleife ist die Wiederholung einer Reihe von Anweisungen, es sei denn, eine bestimmte Bedingung ist erfüllt. Eine ordnungsgemäße Schleife kann Zeit sparen und die Effizienz eines Codes erhöhen. PowerShell, eine Skriptsprache, unterstützt verschiedene Formen von Schleifen.

Schauen Sie sich in diesem Leitfaden an, wie Sie die Foreach -Schleife in PowerShell verwenden.

PowerShell Loops

Im Prinzip sind alle Schleifen gleich. Für eine bessere Codierungserfahrung und Lesbarkeit implementieren verschiedene Programmiersprachen das Schleifenkonzept auf unterschiedliche Weise. Tatsächlich kann dieselbe Sprache mehrere Arten von Schleifen unterstützen, die jeweils mit seiner einzigartigen Struktur.

PowerShell unterstützt verschiedene Arten von Schleifen.

  • für: eine Standardschleife zur Ausführung bestimmter Aufgaben zu einer bestimmten Anzahl von Malen.
  • Während: es führt immer wieder eine Reihe von Operationen durch, bis die Bedingungen erfüllt sind.
  • Tun Sie während: Die Schleife läuft immer so lange, wie die Bedingung wahr ist. Es wird jedoch immer das erste Mal ausgeführt.
  • Do-biss: es funktioniert fast ähnlich wie the the the the the to. Der einzige Unterschied besteht darin, dass es nur ausgeführt wird, wenn die angegebene Bedingung nicht wahr ist.
  • Foreach-Object: Diese Schleife führt eine Operation für jedes Eingabefiel aus.

Wie der Titel des Artikels schon sagt, werden wir uns die Foreach -Schleife ansehen.

Foreach Loop in Powershell

Der Code der Foreach -Schleifenstruktur lautet wie folgt.

Foreach (Artikel in der Sammlung)


Hier,

  • Element: Es ist ein einzelner Wert oder ein einzelnes Objekt, das sich mit jeder Iteration ändert.
  • Sammlung: Es kann ein Array, eine Liste von Werten, Sammeln oder Objekten sein.
  • : Es ist der Codeblock, der ausgeführt wird, sobald die Schleifenbedingung erfüllt ist. Es verwendet im Allgemeinen Artikel.

Foreach ist eine der häufigsten und einfachsten PowerShell -Loops. Es liest eine gesamte Sammlung von Elementen und führt für jedes Element die definierten Operationen durch.

Es kann für zahlreiche Situationen verwendet werden, beispielsweise für den Inhalt eines Verzeichnisses.

Foreach Loop in der Praxis

In diesem Abschnitt werden wir uns einige Beispielimplementierungen der Foreach -Schleife ansehen. Um die Codes auszuführen, habe ich bereits ein leeres PowerShell -Skript vorbereitet.

$ nano foreach loop.PS1

Der Shebang würde ungefähr so ​​aussehen.

$ #!/snap/bin/PowerShell

Markieren Sie die Skriptdatei von PowerShell als ausführbare Datei.

$ chmod +x foreach loop.PS1

Für ein String -Array nach
In der ersten Demonstration werden wir eine Foreach -Schleife implementieren, die aus einem String -Array von Stadtnamen liest und die Stadtnamen auf dem Bildschirm druckt.

Deklarieren Sie zunächst das String -Array.

$ cities = ("Tokio", "New York", "Moskau", "London", "Sydney")

Implementieren Sie nun die Foreach -Schleife, um mit jedem Element des Arrays zu arbeiten.

foreach ($ city in $ städt)

Echo $ City

Testen Sie den Code, indem Sie das Skript ausführen.

$ ./foreach-loop.PS1

Für eine Sammlung von Zahlen
In diesem Beispiel werden wir die Foreach -Schleife ähnlich wie die vorherige implementieren. Der Unterschied ist, dass es stattdessen eine Reihe von Zahlen durchläuft.

Deklarieren Sie das Zahlenarray.

$ Zahlen = (9,8,7,6,5,4,3,2,1)

Implementieren Sie nun die Foreach -Schleife, um die Nummern nacheinander zu drucken.

foreach ($ number in $ number)

Echo $ number

Lassen Sie uns den Code in Aktion setzen.

$ ./foreach-loop.PS1

Nach Dateien
Es ist eines der häufigsten Szenarien, die für Schleifen verwendet werden können. Mit Hilfe anderer CMDLets können wir bestimmte Informationen zu bestimmten Verzeichnissen/Dateien erhalten und diese Informationen verwenden, um die erforderlichen Aktionen auszuführen.

In diesem Beispiel werden die Foreach -Schleife den Inhalt eines Verzeichnisses/Home/Viktor/Desktop/Sample_dir überprüft und den Namen der Dateien drucken.

foreach ($ Datei in Get -childitem -Recurse -Path/Home/Viktor/Desktop/Sample_Dir)

Echo $ Datei

Führen Sie den Code aus.

$ ./foreach-loop.PS1

Hier das CMDLet Get-Childitem Holen Sie sich die Artikel über den beschriebenen Ort. Die Flagge „-Path“ beschreibt welches Verzeichnis sie untersuchen soll. Wenn es mehrere Ebenen von Unterverzeichnissen gibt, erhalten Sie mit „-Recurse“ alle Kinderartikel rekursiv. Wenn Sie in eine bestimmte Tiefe wieder aufnehmen möchten, können Sie auch den Parameter „-Depth“ verwenden. Überprüfen Sie mehr über Get-Childitem.

Wir können den Code auch fein abstellen, um nur nach bestimmten Dateierweiterungen zu suchen.

foreach ($ file in Get -childitem -Recurse -Path/home/viktor/desktop/sample_dir/*.txt)

Echo $ Datei

Foreach über CSV
Eine CSV -Datei handelt. Es ist eine einfache, aber effektive Struktur, um strukturierte Daten im Textformat zu speichern. Das CSV -Format wird von verschiedenen Anwendungen und Datenbankmotoren zur Bequemlichkeit und Benutzerfreundlichkeit verwendet.

Wir können die Foreach -Schleife verwenden, um mit individuellen Werten einer CSV -Datei zu arbeiten und die Maßnahmen entsprechend zu ergreifen. Das folgende Beispiel macht genau das.

$ values ​​= (Get-Content/Home/Viktor/Probe.CSV) [0].Teilt(",")
foreach ($ value in $ values)
echo $ value

Für dieach
Bisher haben wir die Foreach -Schleife in Aktion gesehen, richtig? In PowerShell erscheint es auch als die foreach () -Methode. Ausgehend von PowerShell V4 existiert diese Methode auf Arrays oder Sammlungen von Objekten. Die Methode verfügt.

Schauen wir uns die foreach () -Methode in Aktion an. Erstellen Sie zunächst ein Beispielarray.

$ Zahlen = (2,4,8,16,32,64,128,256,512)

Jetzt können wir die Methode aufrufen und einen einfachen Echo -Befehl pro Iteration beschreiben.

$ Zahlen.Für jede(
echo $ _
)

Foreach-Object
Die Foreach -Schleife kann auch direkt mit Objekten arbeiten. Dazu gibt es ein dediziertes CMDLET, das nach dem Nachisch-Objekt benannt wurde. Es nimmt ein Objekt als Eingabe und iteriert seine Elemente durch.

Im nächsten Beispiel suchen wir ein bestimmtes Verzeichnis nach “.TXT ”-Dateien und verwenden Sie foreach-Object, um basierend auf jedem Element des Suchergebnisses zu handeln.

$ names = get -childitem -recurse/home/viktor/desktop/sample_dir/*.txt
$ NAME |
Foreach-object
echo $ _

Wie Sie sehen können, ist die Kernstruktur von foreach-Object ziemlich ähnlich. Der einzige Unterschied besteht darin, dass Sie das Objekt mit Rohrleitungen übergeben können.

Abschließende Gedanken

Die Foreach -Schleife in PowerShell ist eine einfache, aber effektive und kraftvolle Schleife. Es kann basierend auf Objekten, Arrays oder einzelnen Elementen arbeiten. Dieser Leitfaden zeigt einige der gemeinsamen Implementierungen der Foreach -Schleife.

Neben der Foreach -Schleife unterstützt PowerShell andere Standardschleifen wie die für eine Schleife. Schauen Sie sich diesen Leitfaden für Loop in PowerShell an.

Happy Computing!