batch zeile aus txt datei auslesen
hallo ich wollte fragen ob man in einer Batch datei eine bestimmte zeile aus einer .txt aufrufen kan. Ich hab bis jetzt nur einen Befehl für das ganze Dukument. Währe cool wenn jemand weiter wüstte!!!
!Danke im Vorraus Jonni2001.
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