nick.b
Goto Top

Wort in Textdatei suchen

Ich wollte ein einzelnes Wort aus einer Textdatei suchen und als Variable speichern. Allerdings ist das Wort nicht das einzige in der Datei und steht auch nicht am Anfang der Datei, sondern in der letzten Zeile.
Kann man dies als Bat-Datei verwirklichen ??

Danke schonmal für die Antworten !!

Content-Key: 269573

Url: https://administrator.de/contentid/269573

Ausgedruckt am: 29.03.2024 um 02:03 Uhr

Mitglied: rubberman
Lösung rubberman 18.04.2015 aktualisiert um 18:10:51 Uhr
Goto Top
Hallo Nick.B

Es gibt verschiedene Möglichkeiten. Z.B.:
@echo off &setlocal
set "txtfile=test.txt"  

<"%txtfile%" (  
  set "line="  
  for /f %%i in ('type "%txtfile%"^|find /c /v ""') do for /l %%j in (2 1 %%i) do set /p "="  
  set /p "line="  
)

echo "%line%"  
pause
Somit hättest du die letzte Zeile. Was du nun noch dort suchen willst oder wie daraus ein einzelnes Wort zu extrahieren wäre ist pure Spekulation, solange man den Aufbau dieser Zeile nicht kennt.

Grüße
rubberman
Mitglied: Nick.B
Nick.B 18.04.2015 um 16:55:15 Uhr
Goto Top
Vielen Dank schonmal,

wenn ich jetzt z.B. diesen Text habe : "Dies ist eine Testdatei"
und ich das dritte Wort haben möchte muss ich doch noch tokens einfügen oder wie ginge dies??

Viele Grüße Nick
Mitglied: rubberman
Lösung rubberman 18.04.2015 aktualisiert um 18:10:43 Uhr
Goto Top
Hallo Nick,

wenn du bei o.g. Code noch
for /f "tokens=3" %%i in ("%line%") do set "word=%%i"
anhängst, hast du das 3. Wort in Variable word.

Du kannst auch gleich mit einer FOR /F Schleife arbeiten.
for /f "usebackq tokens=3" %%i in ("test.txt") do set "word=%%i"

Variante 1 ist mehr Code, dafür bei sehr großen Dateien schneller. Variante 2 ist im Gegensatz nur ein Einzeiler, die FOR /F Schleife puffert aber zunächst den gesamten Dateiinhalt, was nur bei kleinen Dateien keinen merklichen Performanceverlust darstellt.

Grüße
rubberman
Mitglied: Nick.B
Nick.B 18.04.2015 um 18:10:39 Uhr
Goto Top
Vielen Dank Super Lösung !