Erstes wort aus der letzten zeile in variable
Hallo
ich wollte gerne mal nachfragen wie ich per batch das erste wort aus der letzten zeile einer txt datei in eine variable speichere.
habe ein script wo nur die letzte zeile ausgelesen wird. evtl kann mir das jemand umschreiben das nur das erste wort der letzten zeile ausgelesen wird.
danke
@echo off & setlocal
set "LetzteZeile="
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "D:\Deine Datei.txt"') do set "LetzteZeile=%%j"
echo\%LetzteZeile%
ich wollte gerne mal nachfragen wie ich per batch das erste wort aus der letzten zeile einer txt datei in eine variable speichere.
habe ein script wo nur die letzte zeile ausgelesen wird. evtl kann mir das jemand umschreiben das nur das erste wort der letzten zeile ausgelesen wird.
danke
@echo off & setlocal
set "LetzteZeile="
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "D:\Deine Datei.txt"') do set "LetzteZeile=%%j"
echo\%LetzteZeile%
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 204629
Url: https://administrator.de/forum/erstes-wort-aus-der-letzten-zeile-in-variable-204629.html
Ausgedruckt am: 21.04.2025 um 20:04 Uhr
15 Kommentare
Neuester Kommentar
Hallo nighty2kk und willkommen im Forum!
Wenn Du als erstes "Wort" alles bis zum ersten Leerzeichen (außer, die Zeile beginnt mit einem oder mehreren Leerzeichen, dann den Teil ab dem ersten Nicht-Leerzeichen bis zum nächsten Leerzeichen) meinst, dann etwa so:
Genau genommen bekommst Du so das erste Wort der letzten nicht leeren (oder nur aus Leerzeichen bestehenden) Zeile.
Grüße
bastla
Wenn Du als erstes "Wort" alles bis zum ersten Leerzeichen (außer, die Zeile beginnt mit einem oder mehreren Leerzeichen, dann den Teil ab dem ersten Nicht-Leerzeichen bis zum nächsten Leerzeichen) meinst, dann etwa so:
@echo off & setlocal
for /f "usebackq" %%i in ("D:\Deine Datei.txt") do set "Wort=%%i"
echo %Wort%
Grüße
bastla
Hallo nighty2kk!
Einfach so:
Grüße
bastla
P.S.: Mit der Formatierung als "Code" (lässt sich auch nachträglich einfügen) sieht das doch viel besser aus, findest Du nicht?
Einfach so:
find "suchwort" %Wort%.txt && (
echo test bestanden
) || (
echo test nicht bestanden
)
pause
goto :eof
bastla
P.S.: Mit der Formatierung als "Code" (lässt sich auch nachträglich einfügen) sieht das doch viel besser aus, findest Du nicht?
Hallo nighty2kk!
Soferne die Stellenanzahl vor den Datumswerten (in Deinem Beispiel 9 Zeichen) konstant wäre, könnte das zB so gehen:
Grüße
bastla
Soferne die Stellenanzahl vor den Datumswerten (in Deinem Beispiel 9 Zeichen) konstant wäre, könnte das zB so gehen:
@echo off & setlocal
set "Datei=D:\Deine Datei.txt"
set "Datum="
for /f "skip=1 tokens=3" %%i in ('sort /r /+9 "%Datei%"') do if not defined Datum set "Datum=%%i"
bastla
Hallo Zusammen,
vielleicht auch so:
Beruht auf der Annahme, dass das "and" das erste mal vor dem Datum auftaucht.
Grüße
rubberman
vielleicht auch so:
@echo off &setlocal
set "file=D:\Deine Datei.txt"
setlocal EnableDelayedExpansion
for /f %%i in ('type "!file!"^|find /c /v ""') do set /a "stop = %%i - 2"
<"!file!" (
for /l %%i in (1 1 %stop%) do set /p "="
set /p "vorletzte="
set /p "letzte="
)
endlocal &set "vorletzte=%vorletzte%" &set "letzte=%letzte%"
echo Vorletzte Zeile: %vorletzte%
echo Letzte Zeile: %letzte%
for /f %%i in ("%vorletzte:* and =%") do echo Datum %%i
for /f %%i in ("%letzte%") do echo Wort %%i
pause
Beruht auf der Annahme, dass das "and" das erste mal vor dem Datum auftaucht.
Grüße
rubberman
Hallo nighty2kk!
ausführen und siehst dann, dass damit eine nach dem Datum (ab der 9. Stelle der Zeile) absteigend (wegen "
Da der zweitjüngste Wert gesucht ist, wird in der Schleife per "
Damit die Zuweisung zur Variablen "
Grüße
bastla
vielleicht könntest du mir die 5te zeile deines codes ein wenig erklären
Du kannst ja testweise einmal direktsort /r /+9 "D:\Deine Datei.txt"
/r
") sortierte Liste aus der Datei erzeugt wird.Da der zweitjüngste Wert gesucht ist, wird in der Schleife per "
skip=1
" die erste Zeile der durch "sort
" erzeugten Ausgabe übersprungen. Mit "tokens=3
" wird festgelegt, dass der 3. Teil der Zeile (Trennung anhand der Standard-Trennzeichen "Leerzeichen" und "TAB") in die Variable "%%i
" übernommen werden soll.Damit die Zuweisung zur Variablen "
%Datum%
" nicht bei jedem Schleifendurchlauf erneut erfolgt, wird in Zeile 4 "%Datum%
" gelöscht und in der Schleife nur zugewiesen, wenn die Variable noch nicht existiert - das ist aber natürlich nur beim ersten Schleifendurchlauf der Fall, und daher wird der Wert in weiteren Durchläufen nicht mehr überschrieben.Grüße
bastla