batch zeile aus txt datei auslesen

2 Antworten

Welche Zeile suchst du denn? Eine Zeilenzahl oder eine Zeile, die einen bestimmten Text enthält?

Für Zeilenzahl nimmst du einen Counter:

Setlocal EnableDelayedExpansion
set Counter=0
set Gesuchte_Zeile=[ZAHL]
FOR /F "delims=" %%A IN (Datei.txt) DO (
    set /a Counter+=1
    if !Counter!==%Gesuchte_Zeile% set Ergebnis=%%A
)
echo !Ergebnis!

Hier müsstest du "[Zahl]" durch die gewünschte Zeilennummer (z.B. 32 für Zeile Nr. 32) ersetzen.

Für einen bestimmten Text kannst du FINDSTR nehmen:

FOR /F "delims=" %%A IN ('findstr /C:"Zeilentext" "Datei.txt"') DO set Ergebnis=%%A
echo %Ergebnis%

Hier besteht aber die Gefahr, dass mehrere Funde erzielt werden. Dann würde nur der letzte gespeichert werden. Wenn du die Zeile nur anzeigen willst, reicht FINDSTR alleine:

findstr /C:"Zeilentext" "Datei.txt"

Das zeigt alle Funde an.

Du könntest die ganze Datei einlesen und dann mittels einer for-Schleife versuchen, den Text anhand des CRs zu trennen

Ich schreibe mal, was ich dazu habe. Text anhand Trennzeichen splitten:

for /f "tokens=1-4 delims=. " %%i in ('date /t') do echo sortdate=%%k%%j%%i

Zeilenumbruch definieren:

@Echo off &setlocal enabledelayedexpansion
...
for /f %%a in ('copy /z "%~f0" nul') do set "CR=%%a"

set LF=^


Rem ^die 2 Leerzeilen belassen!
set "\n=!CR!!LF!"

Datei einlesen:

SET /p Text= <E:\xxx.ini
Woher ich das weiß:Berufserfahrung – Programmierer