Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

BATCH-Skript, welches 24 einzelne (Stunden-) Dateien (.csv) zu einer einzelnen (Tages-) Datei zusammenfügt und alle Zeitstempel bzw. Überschriften bis auf die erste entfernt?

Frage Entwicklung Batch & Shell

Mitglied: axfa77

axfa77 (Level 1) - Jetzt verbinden

30.01.2013, aktualisiert 14:16 Uhr, 2571 Aufrufe, 6 Kommentare

Hallo,

Erst einmal tolles Forum hier, schon viel gelesen!

Mich beschäftigt folgende Problemstellung:


Ich muss von einem entfernten PC csv-Dateien herunterladen (habe ich hinbekommen), welche folgendes Format bzw. Namen haben:

TLG_SystemArchive_20130126_000000_-_20130126_010000_MIN.csv
TLG_SystemArchive_20130126_010000_-_20130126_020000_MIN.csv
TLG_SystemArchive_20130126_020000_-_20130126_030000_MIN.csv

usw.

Diese Dateien beinhalten jeweils 1 Stunde Daten also 60 Datensätze im Minutentakt -> 24 Dateien = 1 Tag.

Vor den Daten gibt es immer eine Zeile (bzw. "Überschrift") wie eine Art Zeitstempel.

Date Spalte1 Spalte2 usw.

Daraus werden soll eine "Tagesdatei", wo alle 24 Dateien eines!! Datums zusammengefasst werden sollen (habe ich auch manuell hinbekommen via TYPE).

Problem: Es sollen bis auf den ersten Zeitstempel die restlichen 23 entfernt werden und das anfängliche "Date" in "DATE" ersetzt werden.

Wichtig hierbei ist auch, daß nur Dateien des Tages 20130126 in eine Datei zusammengefasst werden, also nicht die Daten vom z.B. 20130125 mit einfließen.

Hätte jemand eine Idee dazu?

Wäre für jeden Tip dankbar!

Gruß Axel
Mitglied: bastla
30.01.2013 um 14:32 Uhr
Hallo axfa77 und willkommen im Forum!

Da sich die Kopfzeile ja wohl nicht so häufig ändern dürfte, würde ich diese einfach (mit der gewünschten Änderung ("Date" -> "DATE") in einer Datei "Kopf.txt" speichern und dann etwa so vorgehen (ungetestet):
01.
pushd "D:\Ordner mit den CSV-Dateien" 
02.
for /f "delims=" %%i in ('dir /b/on TLG_SystemArchive_*.csv') do ( 
03.
    for /f "tokens=3 delims=_" %%a in ("%%i") do ( 
04.
        if not exist "%%a.csv" copy "Kopf.txt" "%%a.csv" >nul 
05.
        more +1 "%%i">>"%%a.csv" 
06.
07.
08.
popd
Grüße
bastla
Bitte warten ..
Mitglied: axfa77
30.01.2013, aktualisiert um 15:11 Uhr
Hallo Bastla,

danke für den Tip!

Funktioniert, nur ist die Kopfzeile jetzt gar nicht mehr vorhanden, sprich ALLE Kopfzeilen sind entfernt.

Wo stelle ich ein, wie die zusammengefasste Datei am Ende heisst? Lieb wäre mir: DAYxy.XXX (xy = Tag z.B. der 26. aus meinem Beispiel), wie ziehe ich das aus dem TLG-Namen?


Gruß Axel

EDIT: Die Datei Kopf.txt wird nirgendwo erstellt? Als erste Zeile brauche ich diese von dem ersten (echten) Datensatz...

EDIT2: Jetzt verstehe ich die Kopf.txt Sache: Der Zeitstempel ist sehr wichtig dabei, dieser MUSS in der ersten Zeile bleiben. Ich kann ihn nicht in eine Datei Kopf.txt schreiben.
Bitte warten ..
Mitglied: bastla
30.01.2013, aktualisiert 31.01.2013
Hallo axfa77!

Wenn das Original der Kopfzeile benötigt wird, dann eher so (weiterhin ungetestet ):
01.
setlocal enabledelayedexpansion 
02.
pushd "D:\Ordner mit den CSV-Dateien" 
03.
for /f "delims=" %%i in ('dir /b/on TLG_SystemArchive_*.csv') do ( 
04.
    set "Name=%%~ni" 
05.
    set "Name=DAY!Name:~24,2!.XXX" 
06.
    if not exist "!Name!" ( 
07.
        set /p Kopf=<"%%i" 
08.
        >"!Name!" echo !Kopf:Date_Time=DATE! 
09.
10.
    more +1 "%%i">>"!Name!" 
11.
12.
popd
Grüße
bastla

[Edit] Schreibweise "!Name!" und Ersetzung in Kopfzeile angepasst. [/Edit]
Bitte warten ..
Mitglied: axfa77
31.01.2013, aktualisiert um 09:59 Uhr
Hi,

vielen Dank!

Leider fehlt immer noch die 1. Kopfzeile.

Ich hab keinen Schimmer, wie ich das machen soll.

Der Rest läuft PERFEKT!!!

Vielleicht noch eine Idee?

Gruß

EDIT: die Kopfzeile jeder Datei sieht so aus (Date_Time muss mit DATE ersetzt werden):

Date_Time;30AA203XR01/ANA.QOUT;30AA211XQ01/ANA.QOUT;30AM210XQ01/ANA.QOUT;30AN001XQ04/ANA.QOUT;30CP202XQ01/ANA.QOUT;30CP203XQ01/ANA.QOUT;30CP210XQ01/ANA.QOUT;30CP230XQ01/ANA.QOUT;30CP234XQ01/ANA.QOUT;30CP234XQ02/ANA.QOUT;30CP234XQ03/ANA.QOUT;30CP234XQ91/ANA.IN;30CP234XQ91/ANA.IN1;30CP234XQ91/ANA.IN2;30CP234XQ91/ANA.IN3;30CT040XQ01/ANA.QOUT;30CT101XQ01/ANA.QOUT;30CT102XQ01/ANA.QOUT;30CT103XQ01/ANA.QOUT;30CT104XQ01/ANA.QOUT;30CT105XQ01/ANA.QOUT;30CT106XQ01/ANA.QOUT;30CT111XQ01/ANA.QOUT;30CT112XQ01/ANA.QOUT;30CT121XQ01/ANA.QOUT;30CT122XQ01/ANA.QOUT;30CT123XQ01/ANA.QOUT;30CT124XQ01/ANA.QOUT;30CT201XQ01/ANA.QOUT;30CT202XQ01/ANA.QOUT;30CT203XQ01/ANA.QOUT;30CT205XQ01/ANA.QOUT;30CT221XQ01/ANA.QOUT;30CT222XQ01/ANA.QOUT;30CT223XQ01/ANA.QOUT;30CT229XQ01/ANA.QOUT;30CT229XQ02/ANA.QOUT;30CT229XQ03/ANA.QOUT;30CT229XQ91/ANA.IN;30CT229XQ91/ANA.IN1;30CT229XQ91/ANA.IN2;30CT229XQ91/ANA.IN3;30CT230XQ01/ANA.QOUT;30CY106XQ01/ANA.QOUT;30CY106XQ02/ANA.QOUT;30CY111XQ41/ANA.QOUT;30CY111XQ45/ANA.QOUT;30CY112XQ47/ANA.QOUT;30CY112XQ49/ANA.QOUT;30CY115XQ11/ANA.QOUT;30CY121XQ41/ANA.QOUT;30CY121XQ45/ANA.QOUT;30CY122XQ47/ANA.QOUT;30CY122XQ49/ANA.QOUT;30CY125XQ11/ANA.QOUT;30CY126XQ01/ANA.QOUT;30CY126XQ02/ANA.QOUT;30GH001XR05/ANA.QOUT;30GH001XR06/ANA.QOUT;31CL300XQ01/ANA.QOUT;31CP360XQ01/ANA.QOUT;31CP370XQ01/ANA.QOUT;31CP383XQ01/ANA.QOUT;31CP383XQ02/ANA.QOUT;31CP383XQ03/ANA.QOUT;31CP383XQ91/ANA.IN;31CP383XQ91/ANA.IN1;31CP383XQ91/ANA.IN2;31CP383XQ91/ANA.IN3;31CT367XQ01/ANA.QOUT;32CF441XQ01/ANA.QOUT;32CF442XQ01/ANA.QOUT;32CF443XQ01/ANA.QOUT;32CP400XQ01/ANA.QOUT;32CP420XQ01/ANA.QOUT;32CP441XQ01/ANA.QOUT;32CP441XQ02/ANA.QOUT;32CP441XQ03/ANA.QOUT;32CP441XQ91/ANA.IN;32CP441XQ91/ANA.IN1;32CP441XQ91/ANA.IN2;32CP441XQ91/ANA.IN3;32CP442XQ01/ANA.QOUT;32CP442XQ02/ANA.QOUT;32CP442XQ03/ANA.QOUT;32CP442XQ91/ANA.IN;32CP442XQ91/ANA.IN1;32CP442XQ91/ANA.IN2;32CP442XQ91/ANA.IN3;32CP443XQ01/ANA.QOUT;32CP443XQ02/ANA.QOUT;32CP443XQ03/ANA.QOUT;32CP443XQ91/ANA.IN;32CP443XQ91/ANA.IN1;32CP443XQ91/ANA.IN2;32CP443XQ91/ANA.IN3;70CP415XQ01/ANA.QOUT;70CP415XQ02/ANA.QOUT;70CP415XQ03/ANA.QOUT;70CP415XQ91/ANA.IN;70CP415XQ91/ANA.IN1;70CP415XQ91/ANA.IN2;70CP415XQ91/ANA.IN3;FIC230/ASC.DISV;FIC230/ASC.FLOW;FIC230/ASC.HEAD;FIC230/ASC.P1_In;FIC230/ASC.P2_In;FIC230/ASC.PDT_In;FIC230/ASC.T1_In;FIC230/ASC.Y;FIC230/ASC.Z1_In;MASSFLOW_GT/ANA.QOUT;PIC202/PID.DISV;PIC202/PID.LMNR_IN_phy;PIC202/PID.OP_SP;PIC202/PID.PV_IN;PIC202/PID.PV_MAX;PIC202/PID.PV_MIN;PIC202/PID.QLMN_phy;PIC202/PID.QSP_Aktuell;PIC202/PID.SP_MAX;PIC202/PID.SP_MIN;PIC215/PID.LMNR_IN_phy;PIC215/PID.OP_SP;PIC215/PID.PV_IN;PIC215/PID.PV_MAX;PIC215/PID.PV_MIN;PIC215/PID.QLMN_phy;PIC215/PID.QSP_Aktuell;PIC215/PID.SP_MAX;PIC215/PID.SP_MIN
Bitte warten ..
Mitglied: bastla
31.01.2013 um 12:13 Uhr
Hallo axfa77!

Hatte leider "!Name!" falsch geschrieben - ist jetzt oben korrigiert.

Grüße
bastla
Bitte warten ..
Mitglied: axfa77
31.01.2013 um 14:39 Uhr
Zitat von bastla:
Hallo axfa77!

Hatte leider "!Name!" falsch geschrieben - ist jetzt oben korrigiert.

Grüße
bastla

Hallo,

allergrössten Respekt, es funktioniert!

Grosses DANKE!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen (2)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Windows Server
gelöst Batch Skript während dem Betrieb mittels GPO laufen lassen (14)

Frage von WinLiCLI zum Thema Windows Server ...

Batch & Shell
Wo ist der Fehler in diesem Batch Skript? (11)

Frage von gabrixl zum Thema Batch & Shell ...

Batch & Shell
Batch Skript erweitern (1)

Frage von michi-ffm zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(4)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...