Top-Themen

Aktuelle Themen (A bis Z)

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 .csv Dateien Zusammenkopieren und bestimmte Zeilen entfernen

Mitglied: t3mp

t3mp (Level 1) - Jetzt verbinden

17.01.2008, aktualisiert 22.01.2008, 13749 Aufrufe, 4 Kommentare

Hallo,

Ich habe einen Ordner voller *.csv Dateien und möchte diese per Batch zu einer Datei zusammenfügen... bis dahin kein Problem.
Allerdings hat jede der *.csv Dateien die in dem Ordner liegen eine Überschrift (Zeile 1).

Diese Überschrift ist sehr lang (ca. 500 Zeichen) und sie soll in der erzeugten Datei nur einmal am Anfang auftauchen.

Hat jemand eine Idee wie ich das Problem lösen kann?

Danke für eure Hilfe!
Mitglied: bastla
17.01.2008 um 21:16 Uhr
Hallo -t3mp-!

Unter der Annahme, dass die genannte Überschrift in allen Dateien identisch ist und daher aus einer beliebigen Datei entnommen werden kann, sowie dass es keine vorgegebene Reihenfolge für die Bearbeitung der einzelnen Dateien gibt, etwa so:
01.
@echo off & setlocal
02.
set "Ordner=D:\DeinOrdner"
03.
set "Sammel=D:\DeineSammeldatei.csv"
04.
 
05.
pushd "%Ordner%"
06.
if exist "%Sammel%" del "%Sammel%"
07.
for %%i in (*.csv) do if not exist "%Sammel%" for /f "usebackq delims=" %%z in ("%%i") do if not exist "%Sammel%" echo %%z>"%Sammel%"
08.
for %%i in (*.csv) do more +1 "%%i">>"%Sammel%"
09.
popd
Alternativ dazu könntest Du auch einfach vorweg die (vermutlich auch in Zukunft gleich bleibende) Zeile 1 in eine Datei "D:\DeinOrdner\Zeile1.txt" speichern und es danach so versuchen:
01.
@echo off & setlocal
02.
set "Ordner=D:\DeinOrdner"
03.
set "Sammel=D:\DeineSammeldatei.csv"
04.
set "Zeile=D:\DeinOrdner\Zeile1.txt"
05.
 
06.
copy "%Zeile%" "%Sammel%" >nul
07.
copy "%Ordner%\*.csv" "%Sammel%.tmp" >nul
08.
findstr /v /b /c:"Eine ganz lange Ueberschrift" "%Sammel%.tmp">>"%Sammel%"
09.
del "%Sammel%.tmp"
Hier bist Du zwar weniger flexibel, da bei einer allfälligen Änderung der Zeile 1 nicht nur die zugehörige "Zeile1.txt", sondern auch der Suchstring "SignifikanterZeilenanfangZeile1" im Batch angepasst werden muss, solltest aber andererseits von Leerzeilen in der Sammeldatei verschont bleiben.

Der genannte Suchstring soll so viele Zeichen vom Beginn der Zeile 1 an enthalten, dass damit diese Zeile sicher erkannt und aus der temporären Sammeldatei ausgefiltert werden kann. Es dürfen übrigens auch Leerzeichen Bestandteil dieses Suchstrings sein.

Grüße
bastla
Bitte warten ..
Mitglied: t3mp
17.01.2008 um 21:51 Uhr
Hallo bastla,

danke für deine schnelle Hilfe!

Mit meinen 3 Test-Dateien funktionieren beide Lösungen von dir Problemlos!
Denke mal das es mit den Daten die ich zusammenfügen will auch hinhaut.

Hintergrund des ganzen ist:
Eine Klima-Kammer misst jede Stunde die Temperatur und viele andere Werte in seinem inneren & schreibt diese am ende eines Tages in eine JAHR-MONAT-TAG.csv Datei. Jeden Tag wird also eine neue Datei angelegt. Wenn man dann, die über einen Zeitraum von mehreren Monaten erzeugten Daten betrachten möchte macht sich das mit vielen einzelnen Dateien schlecht.

Mit der Batch-Lösung sind ja die Daten in der Ausgabedatei dann auch gleich Chronologisch geordnet.

Super!
Bitte warten ..
Mitglied: bastla
17.01.2008 um 22:09 Uhr
Hallo -t3mp-!

Um die chronologische Ordnung (anhand des Änderungsdatums der jeweiligen Datei) sicherzustellen, wäre es so besser:
01.
@echo off & setlocal
02.
set "Ordner=D:\DeinOrdner"
03.
set "Sammel=D:\DeineSammeldatei.csv"
04.
 
05.
pushd "%Ordner%"
06.
if exist "%Sammel%" del "%Sammel%"
07.
for %%i in (*.csv) do if not exist "%Sammel%" for /f "usebackq delims=" %%z in ("%%i") do if not exist "%Sammel%" echo %%z>"%Sammel%"
08.
for /f "delims=" %%i in ('dir /b /od *.csv') do more +1 "%%i">>"%Sammel%"
09.
popd
Noch ein Hinweis: Derzeit ist der Batch darauf ausgelegt, bei jedem Start eine neue Sammeldatei aus allen vorhandenen .csv-Dateien zu erstellen - falls dies nicht gewünscht wäre, sondern die aktuelle Sammeldatei nur (und dann natürlich ohne Kopfzeile) ergänzt werden soll, einfach die Zeile
01.
if exist "%Sammel%" del "%Sammel%"
durch das Voranstellen von REM oder :: auskommentieren (oder auch löschen). Allerdings müssten dann nach jedem Durchlauf die bereits verarbeiteten Dateien aus dem Ordner entfernt werden.

Grüße
bastla
Bitte warten ..
Mitglied: t3mp
22.01.2008 um 18:05 Uhr
Hallo bastla,

vielen Dank nochmals für deine Hilfe.

Das Zusammenkopieren der Dateien funktioniert problemlos.

viele Grüße!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
CSV-Datei nach Excel importieren
Frage von mrvfbnummer2Batch & Shell5 Kommentare

Hallo Leute, ich möchte CSV-Dateien in eine Excel-Datei mit PowerSell importieren. Ich habe bereits viel ausprobiert aber habe noch ...

Microsoft Office
Word bestimmt Sprache selbst
gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Batch & Shell

Skript für: Automatisch generierte CSV Datei

gelöst Frage von janelsaesserBatch & Shell3 Kommentare

Hallo zusammen, für einen automatischen Upload von Bilder in unser Personalsystem, brauche ich ein Skript (am besten PowerShell) welches ...

VB for Applications

CSV Datei automatisch bearbeiten und abspeichern

gelöst Frage von klaus1985VB for Applications6 Kommentare

Hallo , Ich habe hier jeden Monat eine CSV Datei die in unserem ERP System generiert wird und von ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 4 TagenHumor (lol)6 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 5 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 8 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 9 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Samba
Windows 10 Client in Samba-Domäne hinzufügen scheitert
Frage von diwaffmSamba31 Kommentare

Hi Leute, ich habe einen Samba Server in der Version 4.9.3 auf einer OpenSuse Maschine laufen. Damit sind momentan ...

Windows Systemdateien
Verknüpfungen nach Pfadwechsel
Frage von Hendrik2586Windows Systemdateien17 Kommentare

Guten Morgen meine lieben Kollegen und Kolleginnen, ich hab da mal eine Frage die Ihr sicher schon kennt. Es ...

Batch & Shell
CMD-Fenster nach Task schließen
gelöst Frage von Hyperlink.93Batch & Shell16 Kommentare

Hallo, ich habe ein Skript was über einen Task bei jeder User Anmeldung läuft. Der Task startet eine CMD ...

Netzwerkmanagement
Sehr langsame Netzverbindung in einem bestimmten Subnet
gelöst Frage von gabeBUNetzwerkmanagement15 Kommentare

Hallo Zusammen Ich habe das folgende Problem: Unser Netzwerk, dass aus verschiedenen Subnetzwerken aufgebaut ist, ist nicht in jedem ...