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

Printed on: April 16, 2024 at 17:04 o'clock

Member: rubberman
Solution rubberman Apr 18, 2015 updated at 16:10:51 (UTC)
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
Member: Nick.B
Nick.B Apr 18, 2015 at 14:55:15 (UTC)
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
Member: rubberman
Solution rubberman Apr 18, 2015 updated at 16:10:43 (UTC)
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
Member: Nick.B
Nick.B Apr 18, 2015 at 16:10:39 (UTC)
Goto Top
Vielen Dank Super Lösung !