drummerjoe

Mit Batch in einer CSV zwei spalten zusammenfügen

Hallo zusammen

ich komme nicht weiter

ich habe eine csv Datei welche ich nicht einlesen kann, da die Software dieses Format nicht kann

#ID Meter1
#OBIS 1-5:1.29.0
#UNIT kWh
#PERIOD h
#STATE def
Date Time Value
17.01.2021 06:15 2.04
17.01.2021 06:30 2.16
17.01.2021 06:45 2.07
17.01.2021 07:00 2.13

Das Problem ist, dass ich die Datum und Zeitwerte (dd.mm.yyyy hh:mm)in einer Spalte benötige, damit ich diese einlesen kann.

kann man die beiden Spalten ab der Zeile 7 zusammen fügen? oder aus den beiden Spalten eine neue hinten anhängen?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 643462

Url: https://administrator.de/forum/mit-batch-in-einer-csv-zwei-spalten-zusammenfuegen-643462.html

Ausgedruckt am: 30.04.2025 um 20:04 Uhr

147323
Lösung 147323 22.01.2021 aktualisiert um 12:47:37 Uhr
Goto Top
Würde ich heutzutage gleich die Powershell für nehmen
gc 'd:\quelle.csv' | select -skip 5 | convertfrom-csv -delimiter "`t" | select @{n='DateTime';e={"$($_.Date) $($_.Time)"}},Value | export-csv 'd:\neu.csv' -delimiter ";" -NoType  
Live Demo
https://tio.run/##XY9fT8IwFMWf20/RDJJJYpsWGIsjJNOMhz0IRqY@Khl3stD9ydYhBv ...
Ein- und Ausgabepfade anpassen fertig.


Wenn's unbedingt plain Batch sein muss, auch das geht natürlich ...
@echo off
>"D:\neu.csv" (  
    echo DateTime;Value
    for /f "usebackq skip=6 tokens=1-3" %%a in ("d:\quelle.csv") do echo.%%a %%b;%%c  
)
Gruß jokari
DrummerJoe
DrummerJoe 03.02.2021 um 11:17:09 Uhr
Goto Top
Hallo Jokari

sorry bin erst jetzt dazugekommen zum Probieren.
Es muss leider Batch sein.

lrgendwie funktoiniert es noch nicht.

ich bekomme ja jeden Tag 2 solche Files die ich damit bearbeiten muss. Somit muss das in eine Schleife und am besten wäre, wenn es das wieder in die ursprüngliche Datei eingeschrieben wird.
DrummerJoe
DrummerJoe 03.02.2021 aktualisiert um 11:20:49 Uhr
Goto Top
so sieht das Ursprungsfile aus
beispiel
DrummerJoe
DrummerJoe 03.02.2021 um 11:24:00 Uhr
Goto Top
und so wäre das Ziel
beispiel2
147323
Lösung 147323 03.02.2021 aktualisiert um 12:09:35 Uhr
Goto Top
lrgendwie funktoiniert es noch nicht.
Klar wenn man die essentiellen Dinge wie Delimiter usw nicht postet ... Pass den Delimiter auf ";" an und schon lüppt dat ...

ls 'D:\quelle' -File *.csv | %{  
    (gc $_.Fullname -Head 5) + ((gc $_.Fullname) | select -skip 5 | convertfrom-csv -delimiter ";" | select @{n='Date Time';e={"$($_.Date) $($_.Time)"}},Value | ConvertTo-CSV -delimiter ";" -NoType) | sc $_.FullName  
}
DrummerJoe
DrummerJoe 03.02.2021 um 13:20:08 Uhr
Goto Top
jetzt schaut das gut aus

Danke dir