leax55
Goto Top

Spaltenüberschriften in csv-Datei einfügen

Hallo,

ich habe in einem Verzeichnis mehrere csv-Dateien die nur Werte beinhalten, aber keine Spaltenüberschriften. Ich möchte mittels Powershell vordefinierte Spaltenüberschriften automatisiert einfügen in die erste Zeile. Die Werte die schon in der ersten Zeile vorhanden sind, sollen in die zweite Zeile rutschen.
Die csv besteht nur aus einer Zeile von Werten und die sind immer mit Semikolon getrennt. So sieht der Inhalt aus
1;2;3;4;5;6;7;8;9;10....

Ich habe es mit folgendem Code versucht:
$folder = 'C:\csv_files'  
$headers = @('Spaltenüberschrift1', 'Spaltenüberschrift2', 'Spaltenüberschrift3')  

Get-ChildItem -Path $folder -Filter '*.csv' | ForEach-Object {  
$file = $_.FullName
$data = Import-Csv $file
$data | Select-Object * | Export-Csv -NoTypeInformation -Path $file -Encoding UTF8
}

Wenn ich das ausführe, verschwinden die Inhalte der csv Dateien einfach. Sie sind also komplett leer. Überschriften wurden nicht eingefügt.

Mit den csv Dateien und dem Pfad passt alles, habe ich alles überprüft und auch mehrere Optionen versucht.

Es kommt auch keine Fehlermeldung um zu schauen was das Problem ist.

Weiss irgendjemand Rat?


Gruss

Content-ID: 5672154403

Url: https://administrator.de/contentid/5672154403

Ausgedruckt am: 28.09.2024 um 13:09 Uhr

5175293307
Lösung 5175293307 27.01.2023 aktualisiert um 12:02:50 Uhr
Goto Top
$folder = 'C:\csv_files'  
$headers = 'Spaltenüberschrift1','Spaltenüberschrift2','Spaltenüberschrift3'  

Get-ChildItem -Path $folder -Filter *.csv -File | ForEach-Object {
    (Import-Csv $_.FullName -Delimiter ";" -Header $headers) | Export-Csv -Path $_.Fullname -Delimiter ";" -NoTypeInformation  -Encoding UTF8  
}
Als Alternative geht es auch ohne die CSV CMDLets
$folder = 'C:\csv_files'  
$headers = 'Spaltenüberschrift1','Spaltenüberschrift2','Spaltenüberschrift3'  

Foreach ($file in Get-ChildItem -Path $folder -Filter *.csv -File){
  ($headers -join ';'),(Get-Content $file.Fullname) | set-content $file.Fullname  
}
Gruß wurstel
LeaX55
LeaX55 27.01.2023 um 13:22:08 Uhr
Goto Top
Hallo wurstel,

seit 3 Std. mache ich da schon rum und es klappt nicht.

Hätte ich lieber gleich hier die Frage gestellt.

Danke Dir! face-smile
5175293307
5175293307 27.01.2023 aktualisiert um 13:29:23 Uhr
Goto Top
Fehler machen ist gut, daraus lernt man, da man sich daran besser erinnert und sie dann meist nicht nochmal begeht 😉.
Dran bleiben ist die Hauptsache.