gerddasboot
Goto Top

String in .txt Datei mittels batch suchen und Errorlevel setzen

Hallo zusammen,

ich möchte in einer (oder mehreren) Text Dateien nach einem bestimmten Inhalt suchen.
Wenn dieser nicht gefunden wird soll das "Errorlevel==0 sein) wird dieser gefunden möchte ich ein "Errorlevel" definieren.

Ich denke findstr ist hier richtig jedoch finde ich hier nur "hochkomplexe"-Beispiele die ich nicht ganz verstehe und deshalb nicht auf mein Problem ummünzen kann.

Das mit dem Errorlevel krieg ich vllt. auch selbst hin wenn ich einen Code für findstr habe.

Vielen Dank schonmal face-smile

Content-Key: 189165

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

Printed on: April 19, 2024 at 22:04 o'clock

Member: bastla
bastla Aug 06, 2012 at 13:05:57 (UTC)
Goto Top
Hallo gerddasboot und willkommen im Forum!

"findstr" ist schon richtig (und auch nicht sooo komplex - siehe "findstr /?") - aber bevor Du mit Errorleveln zu hantieren beginnst, wäre es vielleicht sinnvoll, etwas näher auf das Drumherum einzugehen ...

Grüße
bastla
Member: rubberman
rubberman Aug 06, 2012 at 17:53:32 (UTC)
Goto Top
Hallo gerddasboot, hallo bastla!

* * * Glaskugel ein * * *

test.txt
Lorem ipsum dolor sit amet,
consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.

*.bat
@echo off &setlocal
call :count_found_lines "test.txt" "sit amet"  
echo Found %errorlevel% line(s).
pause
goto :eof

:count_found_lines "filename" "string" 
setlocal DisableDelayedExpansion
set /a n=0
for /f "delims=:" %%i in ('findstr /c:"%~2" "%~1"') do set /a n+=1  
endlocal &exit /b %n%

* * * Glaskugel aus * * *

Mit findstr kannst du die Zeilen (alternativ die Dateien) finden, die eine Zeichenfolge enthalten. Mittels exit /b lässt sich zB. aus einer Subroutine heraus ein Errorlevelwert definieren.

Grüße
rubberman