Mit Batchfile 2 Textdatein zeilenweise auslesen und in eine Textdatei schreiben?
Hallo zusammen,
ich habe 2 Textdateien mit folgendem Inhalt:
Datei 1 (file_1):
Unreserved tokens in use : 1
Unreserved tokens in use : 3
Datei 2 (file_2):
Maximum concurrent user(s) : 2
Maximum concurrent user(s) : 4
Ziel (file):
Die Enddatei soll so ausschauen:
Unreserved tokens in use : 1 Maximum concurrent user(s) : 2
Unreserved tokens in use : 3 Maximum concurrent user(s) : 4
Code:
Mein Code schaut aktuell so aus und ich bekomme es nicht hin beide Zeilen zu schreiben:
for /f "delims=" %%i in (file_1.txt) do set myInuse=%%i
for /f "delims=" %%i in (file_2.txt) do set myMax=%%i
echo %myInuse% %myMax% >file.txt
Also es steht aktuell im end file folgendes:
Unreserved tokens in use : 3 Maximum concurrent user(s) : 4
Danke für eure Hilfe!
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