drummerjoe
Goto Top

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?

Content-Key: 643462

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

Printed on: April 19, 2024 at 12:04 o'clock

Mitglied: 147323
Solution 147323 Jan 22, 2021 updated at 11:47:37 (UTC)
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
Member: DrummerJoe
DrummerJoe Feb 03, 2021 at 10:17:09 (UTC)
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.
Member: DrummerJoe
DrummerJoe Feb 03, 2021 updated at 10:20:49 (UTC)
Goto Top
so sieht das Ursprungsfile aus
beispiel
Member: DrummerJoe
DrummerJoe Feb 03, 2021 at 10:24:00 (UTC)
Goto Top
und so wäre das Ziel
beispiel2
Mitglied: 147323
Solution 147323 Feb 03, 2021 updated at 11:09:35 (UTC)
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  
}
Member: DrummerJoe
DrummerJoe Feb 03, 2021 at 12:20:08 (UTC)
Goto Top
jetzt schaut das gut aus

Danke dir