Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Letzte Zeile einer CSV auslesen, speichern, Datei einlesen von 1. bis zur vorletzten Zeile, diese dann neu schreiben als (alter_Datiename)_gespeicherteLetzterZeile.CSV

$
0
0

Hi,

ich habe einen Ordner mit mehrerer csv-Dateien.

Der Aufbau aller csv-Dateien sieht in etwa wie folgt aus:

a;b;c;d;
e;f;g;h;
i;j;k;l;
...
w;x;y;z;
1234567890       ; (unbestimmte Anzahl an Leerzeichen zwischen der letzten Zahl und dem Semikolon)

Es handelt sich bei den ersten Zeilen um eine unbestimmte Anzahl an Zeilen, welche variieren kann. Ich lese die letzte Zeile aus. Den Inhalt dieser letzten Zeile brauche ich nachher nämlich noch.

Dann stutze ich die gelesene Zeile, damit ich nur noch 1234567890 in der Variablen LastLine habe.

Jetzt will ich die ursprüngliche Datei "test1.csv" einlesen von der ersten bis zur vorletzten Zeile und in eine neue csv-Datei schreiben, die anschließend "test1_1234567890.csv" heißt.

Das habe ich für eine Datei hinbekommen, aber wie schaffe ich das für alle Dateien, die sich in dem Ordner befinden?

$LastLine = Get-Content C:\Temp\test1.csv | Select-Object -Last 1
$LastLine = $LastLine.replace(";","")
$LastLine = $LastLine.trim()
$CSV = Import-CSV c:\Temp\test1.csv
$CSV[0..($CSV.count - 2)] | Export-csv c:\Temp\test1_$LastLine.csv -NoTypeInformation

Hier mein erster Ansatz:

$files = Get-ChildItem "C:\Download\csv\"
for($i = 0; $i -lt $files.Count; $i++) {
 $LastLine = Get-Content $files[$i].FullName | Select-Object -Last 1
 $LastLine = $LastLine.replace(";","")
 $LastLine = $LastLine.trim()
...
}

Weiter komme ich leider nicht.

Wer kann mir helfen?

Gruß Kathrin


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>