PowerShell – 04 – Textdatei auslesen, bearbeiten, anlegen, befüllen

Save page

In PowerShell ist es sehr einfach mit Boardmitteln Dateien im *.txt, *.csv oder sonst einem Format zu erstellen. Um die Datei in einem Script zu laden wird lediglich der Befehl Get-Content benötigt. Anschließend kann der Inhalt spielend in einer Foreach Schleife behandelt werden. Ebenso ist es sehr einfach in eine Datei zuschreiben oder eine neue Datei zu erstellen. Ich nutze die Schreibfunktion gerne für Logs.

Im Inputfile befinden sich mehrereDatensätze die ausgewertet werden sollen.Inputfile

Mit Get-Content laden wir das Textfile, mit der Funktion Split() können wir die Daten trennen und weiterverarbeiten. In der Datei sind alle Informationen mit einen | getrennt. Wir wollen aus den Teilstücken den Satz bilden ‚Name‘ ist geboren in ‚Ort‘, ‚Land‘.

Codebeispiele

Nun sollen diese Sätze wieder in eine Text Datei eingefügt werden. Dies wird mittels Out-File realisiert. Es muss der Zielpfad der Textdatei angeben werden, existiert diese Datei noch nicht, so wird sie angelegt. Existiert die Textdatei bereits, so wird sie überschrieben! Der Pfad wird wie folgt durch den Parameter -FilePath angehangen. Wenn man nun mehrere Daten in das selbe Textfile schreiben möchte, muss man den Parameter -Append hinter -FilePath hängen. Append besagt, dass das File Weiter beschreiben und nicht überschrieben wird.

Codebeispiel

In Variante 1 hat das Outputfile ohne den Parameter -Append erstellt. Die Folge ist das nur der letzte bearbeitete Datensatz in Outputfile zusehen ist, da alle vorherigen immer wieder überschrieben wurden.Outputfile

Nun das ganze mit dem Parameter Append.

Codebeispiel

In Variante 2 ist deutlich zu sehen, das die Datei fortlaufend beschrieben wurde, sogar der Eintrag aus Variante 1 ist noch beinhaltet.Outputfile2

rewe

3 Gedanken zu „PowerShell – 04 – Textdatei auslesen, bearbeiten, anlegen, befüllen

  1. Sei gegrüßt!
    Eigentlich dachte ich, dass Deine Beiträge mein Grundlagenverständniss soweit angehoben hätten, dass ich problemfrei eine einfache Abfrage gestalten und umsetzen könnte.
    Leider ein Irrtum oder einfach nur der „böse Tunnelblick“!?
    Folgendes Skript gibt ab Zeile 71 nicht mehr das erwartete Ergebniss zurück, sondern schreibt nur den Pfad der Variablen $a in $b.
    Könntest du ermitteln, woran das liegt?

    Danke im Vorraus und
    mit freundlichen Grüßen

    A. Raue – Leipzig (Plagwitz)

    Zum Script (als HTML zum rauskopieren): http://alph-raue.de/uemmsen/Boardsachen/ping.ps1

  2. Pingback: PowerShell – Masterindex | Blog: Stefan Rehwald

Kommentar verfassen