Mit Batchfile 2 Textdatein zeilenweise auslesen und in eine Textdatei schreiben?

1 Antwort

Schade, das Du nicht die passenden Schlagworte für das gefragte Thema gesetzt hast. Deshalb ist Deine Frage leider untergegangen und unbeantwortet geblieben.

Die für Deine Frage zu setzenden Themen wären "Batch" und "cmd" gewesen. Batch-Datei ist einfach zuviel des Guten....

@echo off
chcp 65001 >nul & rem umlaute im Text darstellen
setlocal enableDelayedExpansion

 rem es sind beliebig viele Dateien möglich nur hier ist eine Änderung nötig. Dateinamen in Gänsefüßchen und durch Komma und/oder Leerzechen getrennt
 rem zB. set FileList= "mein 1.txt" , "eine andere Datei.txt" , "sonstwas.blib" , "nochwas.blub"
set FileList= "file_1.txt" , "file_2.txt" 

set "maxLines=0"
set "fileIndex=0"
 rem Dateien enlesen...
for %%a in (%FileList%) do (
   rem für jede zu verarbeitende Datei den den FileIndex um 1 erhöhen (wird als Arrayselektor benötgt)...
   rem das macht unabhängig vom Dateinamen
   rem es können beliebig viele Dateien kombiniert werden werden.
  set /a "fileIndex+=1"
  set "LineCount=0"
   rem Zeilen in ein Array einlesen...
  for /f "usebackq tokens=*" %%b in ("%%~a") do (
    set /a "LineCount+=1"
    set "TextLines.File!fileIndex!.!LineCount!=%%b"
    if !maxLines! lss !LineCount! set "maxLines=!LineCount!"
  )
)
 rem Ende Dateien enlesen...
 rem mit den Inputdateien sind wir fertig....


 rem "Ziel.txt"-Datei leeren 0 Byte Größe...
(call)>"Ziel.txt"
 rem Daten verarbeiten....
for /l %%a in (1,1,%Maxlines%) do (
   rem Variable %newLine% Leeren...
  set "newLine="
  for /l %%b in (1,1,%fileIndex%) do (
     rem die Inhalte der Zeilen der eingelesenen Dateien zusammenfügen
    set "newLine=!newLine!!TextLines.File%%~b.%%~a! "
  )
   rem Zusammengefügte Zeile in Datei "Ziel.txt"
  (echo:!newLine!)>>"Ziel.txt"
)
 rem Ende Daten verarbeiten....
  
 rem Zieldatei anzeigen
  type "Ziel.txt"
  echo Ende "Ziel.txt"

pause

egal beim nächsten mal klappt es besser

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren