rkrause78
Goto Top

Per Batch Zeile einlesen und vor einem bestimmten Wort eine Zeichenkette einlesen

Hi

Die Überschrift mag etwas verwirrend seinface-sad

Ich habe ein Log. Bei diesem Log variieren die Anzahl der Zeilen. Das gesuchte Wort steht somit oft in einer anderen Zeile!!

Ich suche ein Wort.

Was ich weis ist, das dieses Wort an der ersten Stelle der Zeile steht (also das 1. Wort, aber ich weis die Zeile nicht). Nach dem Wort folgt ein String mit immer der selben Form. Die 1. Wörter der Zeilen davor und danach sind auch gleich (in allen meinen Testdurchgängen jedenfalls).

Praktisch so:

...

Zeile x-1: gleicher_text
Zeile xxx: GESUCHTE_WORT - gleicher_text_einzigartig
Zeile x+1: gleicher_text

...


Man könnte also sagen:

Suche zuerst diese Zeile mit dem Wort "gleicher_text_einzigartig" und lese von dieser Zeile das erste Wort!!

Ich weis zwar wie man bestimmte Texte sucht, aber ich weis leider nicht, wie ich an das gesuchte Wort kommeface-sad

Jmd ne Idee, wie ich das gesuchte Wort elegant finde?

Ich könnte auch umständliche Routinen einbauen, soll aber ja nicht Sinn der Sache sein

Content-Key: 88332

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

Printed on: April 18, 2024 at 14:04 o'clock

Member: Biber
Biber May 23, 2008 at 15:36:56 (UTC)
Goto Top
Moin rkrause78,

das Wort findest Du am besten mit der Kombination einer FOR/F-Anweisung mit einem FindStr-Aufruf.
>for /f %i in ('findstr /c:"gleicher_text_einzigartig" d:\work\Deine.Log') do @echo %i  
GESUCHTE_WORT
So wäre das wesentliche am CMD-Prompt
In eine Variable im Batch bekommst Du es so:
for /f %%i in ('findstr /c:"gleicher_text_einzigartig" d:\work\Deine.Log') do Set myVar=%%i  

Grüße
Biber
Member: rkrause78
rkrause78 May 23, 2008 at 16:36:43 (UTC)
Goto Top
Vielen Dank.

Habe während meiner Suche ein Tool gefunden "http://home.mnet-online.de/horst.muc/maind.htm".

Das Tool Tfind hat mir sehr geholfen und wirft sogar zwei Errorlevel, wenn der String gefunden bzw nicht gefunden wurde.