xauiii
Goto Top

Mehrere CSV Tabellen erst bearbeiten danach zusammenführen

Hallo

wie kann man in Batch mehrere CSV Dateien Bearbeiten und danach zu einer zusammenführen? Hab mir das so gedacht es gibt 4 CSV Tabellen die wie folgt aufgebaut sind

nummer; zahl1; zahl2; zahl3

jetzt sollte in 3 Dateien die zahl1 einmal mit 0,20 multipliziert werden in der anderen 0,30 und die letzte mit 0,40 die letzte Datei bleibt unberührt und dann alle werte in eine Tabelle geschrieben werden die genauso aufgebaut ist also

nummer; zahl1; zahl2; zahl3

alle Dateien haben immer die selbe erste Zeile die muss natürlich dann nur einmal verwendet werden und sollte sozusagen nur einmal in die neue CSV Datei geschrieben werden.

Content-Key: 479170

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

Printed on: April 18, 2024 at 13:04 o'clock

Member: rubberman
rubberman Jul 31, 2019 at 07:37:52 (UTC)
Goto Top
wie kann man in Batch
Gar nicht. Batch kann CSV Daten nicht sicher verarbeiten. Außerdem gibt es nur ganzzahlige Arithmetik. So etwas wie "multipliziere mit Nullkommairgendwas" ist nicht.

Steffen
Mitglied: 140447
Solution 140447 Jul 31, 2019 updated at 08:31:25 (UTC)
Goto Top
Nimm gleich die Powershell wenn es sich um eine Windose handelt.

Wenn die CSV Dateien so aussehen:
Header1;Header2;Header3;Header4
1111;10.5;20;30
Dann mit folgendem Code (Quell- und Ziel-Dateinamen und Spaltenüberschrift der Spalte 2 anpassen)
$files = 'D:\Datei1.csv','D:\Datei2.csv','D:\Datei3.csv','D:\Datei4.csv'  
$factors = 0.2,0.3,0.4,1
0..($files.Count -1) | %{
    $index = $_
    Import-CSV $files[$_] -Delimiter ";" | %{  
        $_.'Header2' = [decimal]$_.'Header2' * $factors[$index]  
        $_
    }
} | export-csv "D:\out.csv" -Delimiter ";" -Encoding UTF8 -NoTypeInformation  
Member: xauiii
xauiii Jul 31, 2019 at 09:37:16 (UTC)
Goto Top
Perfekt genau das was ich gebraucht habe face-smile vielen vielen dank.