sven289
Goto Top

Dateien eines Tages zusammenführen und in einer neuen Datei speichern

Hallo,

ich bin auf der Suche nach einem Script, dass mehrere .txt-Dateien zusammenführt und diese in einer neuen Datei speichert.
Die Daten stammen von meiner Wetterstation und werden jede Stunde in Form einer txt-Datei gespeichert.
Die Dateien sehen so aus:
weatherdatalog2013-12-15-17-02-04.txt
weatherdatalog2013-12-15-18-02-04.txt
weatherdatalog2013-12-15-19-02-04.txt
weatherdatalog2013-12-15-20-02-04.txt
usw....(24 Stück pro Tag)

Der Inhalt einer txt-Datei enthält u.a. die Temperaturen jeder Minute in Zeitraum von einer Stunde. Eine txt-Datei sieht z.B. so aus:
6.3;2013.12.15;17:02:04
6.4;2013.12.15;17:03:04
6.4;2013.12.15;17:04:04
6.4;2013.12.15;17:05:04
6.3;2013.12.15;17:06:04
6.2;2013.12.15;17:07:04
usw..(60 Werte)

Das Script soll den Inhalt von txt-Dateien eines Tages zusammenführen und in einer neuen txt-Datei speichern.

Die Datei, die die zusammengeführten Daten eines Tages enthält, sollte heißen:
2013-12-15.txt
Das Script sollte somit nach Jahr, Monat und Tag sortieren können. Die Uhrzeit wird nicht verwendet.
Alle Dateien befinden sich in einem Ordner.

Ich hatte schon im Forum und auf anderen Seiten gesucht. Leider konnte ich nichts für meinen Zweck finden bzw. anpassen.
Ich hoffe, dass Sie/Ihr mir weiterhelfen können/könnt!

Ich bedanke mich schon mal!

Content-ID: 224572

Url: https://administrator.de/forum/dateien-eines-tages-zusammenfuehren-und-in-einer-neuen-datei-speichern-224572.html

Ausgedruckt am: 22.12.2024 um 22:12 Uhr

bastla
Lösung bastla 15.12.2013, aktualisiert am 16.12.2013 um 06:46:27 Uhr
Goto Top
Hallo sven289 und willkommen im Forum!

Im einfachsten Fall etwa so (ungetestet):
@echo off & setlocal
set "Ordner=D:\Wetterdaten"  

pushd "%Ordner%"  
for /f "delims=" %%i in ('dir /b /on /a-d weatherdatalog*.txt') do (  
    for /f "tokens=2-4 delims=g-" %%a in ("%%~ni") do (  
        type "%%i">>"%%a-%%b-%%c.txt" && ren "%%i" "_%%i"  
    )
)
popd
Damit die Dateien nur einmal verarbeitet werden, wird nach dem Übertragen des Inhalts in die "Tagesdatei" dem Dateinamen ein "_" vorangestellt.

Grüße
bastla
Sven289
Sven289 16.12.2013 um 06:57:39 Uhr
Goto Top
Vielen Dank, es funktioniert!
Könnte das Script noch so ergänzt werden, dass die erstellten Dateien in einen anderen Ordner kopiert werden?
Wenn es nicht zu viele Umstände macht, wäre es schön, wenn die erstellten Daten in Ordner des Jahres, und des Monats kopiert werden könnten.
Also z.B. in diesem Pfad landen:
D:\Wetterdaten_Zusammen\2013\12\"

Nochmals vielen Dank!!!
bastla
Lösung bastla 16.12.2013 aktualisiert um 16:22:27 Uhr
Goto Top
Hallo Sven289!

Dann etwa so:
@echo off & setlocal
set "Ordner=D:\Wetterdaten"  

pushd "%Ordner%"  
for /f "delims=" %%i in ('dir /b /on /a-d weatherdatalog*.txt') do (  
    for /f "tokens=2-4 delims=g-" %%a in ("%%~ni") do (  
        md "%Ordner%_Zusammen\%%a\%%b" 2>nul  
        type "%%i">>"%Ordner%_Zusammen\%%a\%%b\%%a-%%b-%%c.txt" && ren "%%i" "_%%i"  
    )
)
popd
Grüße
bastla
Sven289
Sven289 16.12.2013 um 16:23:31 Uhr
Goto Top
Funktioniert alles bestens. Vielen Dank nochmal!