didie08
Goto Top

Zeilen Nummer erstes Vorkommen eines Strings

Ich möchte mit findstr die Zeilen Nummer der ersten Vorkommens des Suchstrings ermitteln.

Hallo

Im Moment mache ich das in dem ich einer findstr ausgabe Datei eine for Schleife nachschalte.

findstr /N "TIMESTAMP" %date%.log > aktuellertimestamp.txt  

for /f "delims=: tokens=1" %%i in (aktuellertimestamp.txt) do (  
	set erstfund=%%i
break
goto :loop
)
:loop


Geht das auch eleganter mit irgend einer Option im findst Befehl ?


Gruß
didie08

Content-ID: 103329

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

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

miniversum
miniversum 04.12.2008 um 17:44:38 Uhr
Goto Top
Etwas eleganter, aber nach dem gleichen Prinzip geht es so:
set "erstfund="  
for /f "delims=: tokens=1" %%i in ('findstr /N "TIMESTAMP" %date%.log') do if not defined erstfund set erstfund=%%i  
Ren
Ren 04.12.2008 um 17:53:27 Uhr
Goto Top
habe ich bis her auch immer so gemacht. nur dass ich mir die temporäre Datei spare:
for /f "delims=: tokens=1" %%i in ('findstr /N "TIMESTAMP" %date%.log') do (  
	set erstfund=%%i
break
goto :loop
)
:loop
Wenn du es mit einer temporären Datei machst, dann schlage ich folgendes vor:
findstr /N "TIMESTAMP" %date%.log >aktuellertimestamp.txt  
set /p alles=<aktuellertimestamp.txt
set /a zeile=%alles%
:loop
Wirklich schön ist das aber auch nicht...
Ich wäre also auf elegantere Lösungen auch gespannt.
Biber
Biber 05.12.2008 um 17:24:36 Uhr
Goto Top
Moin didie08,

<OT>
gerade in dieser besinnlichen Vorweihnachtszeit kommen mir so oft die irgendwie ja immer wahren Film- und Politikerzitate in den Sinn, wenn Ich durch aktuelle Beiträge hier im Forum daran erinnert werde.

Während ich bei anderen Beiträgen nun oft an
"Ich werd' langsam zu alt für diese Sch###..." oder
"Verbinden Sie mich sofort mit dem Präsidenten!"
denken musste, klang bei Deinem
"Zeilen Nummer erstes Vorkommen eines Strings"
aus unerfindlichen Gründen das
"Es wächst zusammen, was zusammen gehört..""
in meinem Ohr. face-wink
</OT>

Aber den Kommentar schreibe ich aus anderem Grund.
@Ren:

Um endlich mal mit diesen Mythen und urban legends aufzuräumen:
>help break
Schaltet (zusätzliche) Überwachung für Strg+C ein (ON) oder aus (OFF).

Dieser Befehl ist nur aus Kompatibilitätsgründen existent. Er hat keinen
Effekt unter Windows XP.

Wenn die Befehlserweiterungen aktiviert sind und unter Windows XP ausgeführt
werden, wird mit dem BREAK-Befehl ein Hardcoded Breakpoint für einen Debugger
gesetzt.

Der Break-Befehl macht genausoviel Sinn wie ein bildungspolitischer Sprecher der F.D.P.
Du kannst ihn ohne jegliches Wenn und Aber einfach weglassen. Den Break-Befehl mein ich.

Dieses vermeintlich bedeutungsschwangere "wird ein Hardcoded Breakpoint für einen Debugger gesetzt" - hey, sowas schreiben alle PraktikantInnen in ihre Monatsberichte.
Ist ebenfalls vollkommen sinnfrei.

Ansonsten hätte ich zu den beiden (oder drei) oben geposteten Lösungen bestenfalls Variationen zu liefern - auch nichts Eleganteres.

Grüße und baldiges Wochenende
Biber