2016-05-03 15 views
0

Ich versuche, eine Batch-Datei, um mehrere Textdateien in einer Textdatei zu fusionieren, habe ich versucht, mit:Merge Textdateien mit der gleichen ersten Zeile

For %f in (*.txt) Do type "%f" >> onetext.txt 

, was ich es tun müssen, ist sicherzustellen, dass es verschmilzt die Dateien mit der gleichen ersten Zeile zuerst und dann die verbleibenden Dateien zusammenführen. Hier ist ein Beispiel von, was in einige der Dateien:

Name1 
Data 1 
Data 2 

Name2 
Data 1 
Data 2 

Name1 
Data 3 
Data 4 

Was muss ich schließlich bekommen, ist:

Name1 
Data 1 
Data 2 
Data 3 
Data 4 

Name2 
Data 1 
Data 2 

Vielen Dank im Voraus

Antwort

2
@echo off 
setlocal enabledelayedexpansion 
del *.out 
del summary.txt 
for %%i in (*.txt) do (
    <%%i set /p first= 
    if not exist !first!.out (echo/&echo Title: !first!)>!first!.out 
    more +1 %%i >>!first!.out 
) 
type *.out >summary.txt 2>nul 
type summary.txt 
+0

Sorry, habe nicht verstanden, Sie möchten eine einzelne Ausgabedatei. Siehe meine Bearbeitung. – Stephan

+0

Vielleicht. Wie entscheide ich, wo ich die Zeilenvorschübe einstellen soll? Titel immer ein Wort? Wie viele Wörter pro Datenleitung? Ist es für jede Datenleitung gleich? Oder beginnen sie alle mit dem gleichen Wort ("Daten")? Wenn es keine feste Regel zum Aufteilen der Linie gibt, bist du verloren. – Stephan

+0

Gut. Das heißt, wir können den Titel isolieren. Wie wäre es mit den Datenzeilen? Woher weiß man, wo ein Datensatz endet und der nächste startet? – Stephan

Verwandte Themen