Mehrere Textdateien in EINE Zeile einer Datei zusammenfassen
Ich verzweifel gerade an einer, für den Kenner hoffentlich einfachen, Sache.
Es stehen diverse Textdateien bereit, teilweise werden diese frisch gefüllt, teilweise sind dort feste Titexl hinterlegt, die dann zusammengefügt Sinn ergeben sollen.
Durch die einfachste Variante, also in etwa:
type text1.txt > ausgabe.txt
type text2.txt >> ausgabe.txt
type text3.txt >> ausgabe.txt
type text4.txt >> ausgabe.txt
type text5.txt >> ausgabe.txt
klappt das auch, jedoch nur mit maximal zweiTexten in einer Zeile, danach folgt ein Umbruch und es wird in Zeile 2 weitergeschrieben!
Ich bräuchte das Ganze aber zwingend in einer Zeile, soll in etwa so ausehen:
"Inhalt text1.txt" "Inhalt text2.txt" "Inhalt text3.txt" "Inhalt text4.txt" "Inhalt text5.txt" .....
Kann man das bewerkstelligen, oder bin ich da mit meinem TYPE-Befehl absolut auf dem Holzweg?
Für Eure Hilfe danke ich schon jetzt sehr!!!
Gruß, LFS1993
Es stehen diverse Textdateien bereit, teilweise werden diese frisch gefüllt, teilweise sind dort feste Titexl hinterlegt, die dann zusammengefügt Sinn ergeben sollen.
Durch die einfachste Variante, also in etwa:
type text1.txt > ausgabe.txt
type text2.txt >> ausgabe.txt
type text3.txt >> ausgabe.txt
type text4.txt >> ausgabe.txt
type text5.txt >> ausgabe.txt
klappt das auch, jedoch nur mit maximal zweiTexten in einer Zeile, danach folgt ein Umbruch und es wird in Zeile 2 weitergeschrieben!
Ich bräuchte das Ganze aber zwingend in einer Zeile, soll in etwa so ausehen:
"Inhalt text1.txt" "Inhalt text2.txt" "Inhalt text3.txt" "Inhalt text4.txt" "Inhalt text5.txt" .....
Kann man das bewerkstelligen, oder bin ich da mit meinem TYPE-Befehl absolut auf dem Holzweg?
Für Eure Hilfe danke ich schon jetzt sehr!!!
Gruß, LFS1993
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 110343
Url: https://administrator.de/forum/mehrere-textdateien-in-eine-zeile-einer-datei-zusammenfassen-110343.html
Ausgedruckt am: 20.05.2025 um 02:05 Uhr
11 Kommentare
Neuester Kommentar
Hallo LFS1993!
Unter der Annahme, dass jede der Dateien nur aus einer Zeile besteht, etwa so:
Soferne die Anführungszeichen bereits im Dateiinhalt enthalten sein sollten (geht aus Deiner Beschreibung nicht eindeutig hervor), einfach in Zeile 12 weg lassen ...
Grüße
bastla
Unter der Annahme, dass jede der Dateien nur aus einer Zeile besteht, etwa so:
@echo off & setlocal
set Ein="D:\text1.txt" "D:\text2.txt" "D:\text3.txt" "D:\text4.txt" "D:\text5.txt"
set "Aus=D:\TextGesamt.txt"
set Gesamt=
for %%i in (%Ein%) do call :ProcessFile %%i
>"%Aus%" echo %Gesamt:~1%
goto :eof
:ProcessFile
set /p Zeile=<%1
set Gesamt=%Gesamt% "%Zeile%"
goto :eof
Grüße
bastla
Hallo LFS1993!
Dann etwa in dieser Art:
Das in den Zeilen 8 und 13 verwendete Zeichen "@" ist ein Platzhalter für das im Ergebnis gewünschte "|" und sollte in den Texten selbst nicht vorkommen (im Fall des Falles daher zB gegen "$" öÄ austauschen).
Die jetzt in der Zeile 13 befindlichen Anführungszeichen sind übrigens so gewollt (damit nicht ein ev irrtümlich am Ende dieser Zeile stehendes Leerzeichen in der Ergebniszeile landet).
Grüße
bastla
[Edit] Platzhalter "@" für "|" eingefügt. [/Edit]
Dann etwa in dieser Art:
@echo off & setlocal
set Ein="D:\text1.txt" "D:\text2.txt" "D:\text3.txt" "D:\text4.txt" "D:\text5.txt"
set "Aus=D:\TextGesamt.txt"
set Gesamt=
for %%i in (%Ein%) do call :ProcessFile %%i
set "Gesamt=%Gesamt:~1%"
>"%Aus%" echo %Gesamt:@=^|%
goto :eof
:ProcessFile
set /p Zeile=<%1
set "Gesamt=%Gesamt%@%Zeile%"
goto :eof
Die jetzt in der Zeile 13 befindlichen Anführungszeichen sind übrigens so gewollt (damit nicht ein ev irrtümlich am Ende dieser Zeile stehendes Leerzeichen in der Ergebniszeile landet).
Grüße
bastla
[Edit] Platzhalter "@" für "|" eingefügt. [/Edit]
Moin LFS1993,
an der Anzahl der Zeilen, die Du zwischen [set "Gesamt=%Gesamt%@%Zeile%" ] und [goto :eof] einfügst wird es nur liegen, wenn die Anzahl der neuen Zeilen >= 40895 ist. Dann kommt der CMD-Interpreter manchmal durcheinander, hab ich festgestellt.
In fast allen anderen Fällen liegt es am Inhalt der neuen Zeilen.
Magst Du Deine mal posten?
Grüße
Biber
an der Anzahl der Zeilen, die Du zwischen [set "Gesamt=%Gesamt%@%Zeile%" ] und [goto :eof] einfügst wird es nur liegen, wenn die Anzahl der neuen Zeilen >= 40895 ist. Dann kommt der CMD-Interpreter manchmal durcheinander, hab ich festgestellt.
In fast allen anderen Fällen liegt es am Inhalt der neuen Zeilen.
Magst Du Deine mal posten?
Grüße
Biber
Moin LFS1993,
die (programmablaufmäßig) "letzte Anweisung" in bastlas Schnipsel ist die Zeile 9
-->da ist der Batch eigentlich zu Ende.
Und vor dieses "goto :eof" musst/kanst Du ggf. weitere Anweisungen setzen.
Was Du jetzt geändert hattest war "nur" ein aufgerufener CALL-Block, eine Art Unterprozedur.
Bildlich gesprochen eine kleine Zusatzfunktionalität, die aber nur und ausschließlich die Zeile 06 und deren FOR-Anweisung ein bisschen aufpeppt.
Grüße
Biber
die (programmablaufmäßig) "letzte Anweisung" in bastlas Schnipsel ist die Zeile 9
-->da ist der Batch eigentlich zu Ende.
Und vor dieses "goto :eof" musst/kanst Du ggf. weitere Anweisungen setzen.
Was Du jetzt geändert hattest war "nur" ein aufgerufener CALL-Block, eine Art Unterprozedur.
Bildlich gesprochen eine kleine Zusatzfunktionalität, die aber nur und ausschließlich die Zeile 06 und deren FOR-Anweisung ein bisschen aufpeppt.
Grüße
Biber