Problem mit findstr
Suche liefert nicht das erwartete Ergebnis
Ich möchte eine Textdatei mit folgendem Text...
"statistik2008.job" (statistik.bat)
Finished 1/28/2008 5:30:01 PM
Result: The task completed with an exit code of (c000013a).
"statistik2008.job" (statistik.bat)
Started 1/28/2008 5:45:00 PM
"statistik2008.job" (statistik.bat)
Finished 1/28/2008 5:45:00 PM
Result: The task completed with an exit code of (0).
"ereignislog.job" (ereignislog.bat)
Started 1/28/2008 5:52:38 PM
"ereignislog.job" (ereignislog.bat)
Finished 1/28/2008 5:52:38 PM
Result: The task completed with an exit code of (ff).
auf die Zeichenkette in Klammern durchsuchen und wenn diese nicht "0" ist in eine Variable schreiben und hochzählen.
Das versuche ich mit folgendem Befehl:
for /f %%x in ('findstr /C "(ff)" c:\temp\test.txt') do (set /a "error=error+1")
Das Ergebnis liefert mir aber nicht den gewünschten Treffer zurück. Wo liegt mein Fehler?
Danke für jegliche Hilfe.
Ich möchte eine Textdatei mit folgendem Text...
"statistik2008.job" (statistik.bat)
Finished 1/28/2008 5:30:01 PM
Result: The task completed with an exit code of (c000013a).
"statistik2008.job" (statistik.bat)
Started 1/28/2008 5:45:00 PM
"statistik2008.job" (statistik.bat)
Finished 1/28/2008 5:45:00 PM
Result: The task completed with an exit code of (0).
"ereignislog.job" (ereignislog.bat)
Started 1/28/2008 5:52:38 PM
"ereignislog.job" (ereignislog.bat)
Finished 1/28/2008 5:52:38 PM
Result: The task completed with an exit code of (ff).
auf die Zeichenkette in Klammern durchsuchen und wenn diese nicht "0" ist in eine Variable schreiben und hochzählen.
Das versuche ich mit folgendem Befehl:
for /f %%x in ('findstr /C "(ff)" c:\temp\test.txt') do (set /a "error=error+1")
Das Ergebnis liefert mir aber nicht den gewünschten Treffer zurück. Wo liegt mein Fehler?
Danke für jegliche Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79386
Url: https://administrator.de/contentid/79386
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
6 Kommentare
Neuester Kommentar
Moin deepeblue,
willkommen im Forum.
Da solltest Du etwas anders herangehen.
Probiere es mal am CMD-Prompt aus - ein besseres Ergebnis erhieltest Du so.
... also zuerst mit FindStr alle Zeilen mit [exakt] "exit code of (" suchen und danach mit Find alle Zeilen zählen, die NICHT "(0)" enhalten. ( Parameter "/c /v" ).
Denn FindStr.exe kennt keine /c = Count-Funktionalität.
Im Batch dann:
Grüße
Biber
willkommen im Forum.
Da solltest Du etwas anders herangehen.
Probiere es mal am CMD-Prompt aus - ein besseres Ergebnis erhieltest Du so.
findstr /c:"exit code of (" c:\temp\test.txt
Result: The task completed with an exit code of (c000013a).
Result: The task completed with an exit code of (0).
Result: The task completed with an exit code of (ff).
(= 9:22:14 D:\temp=)
>findstr /c:"exit code of (" c:\temp\test.txt|find /v /c "(0)"
2
Denn FindStr.exe kennt keine /c = Count-Funktionalität.
Im Batch dann:
for /f %%x in ('findstr /c:"exit code of (" c:\temp\test.txt^|find /v /c "(0)" ') do set /a ErrCnt=%%x
Grüße
Biber
Hi,
Trägst Du das wirklich so
ein?
Was genau bezweckst Du damit?
Erstmal: Streich die Klammern, und schreib DO CALL SET.... Wird sicher besser funktionieren
[EDIT]
War wohl nix...
Meine Vorredner haben es wohl besser kapiert, was Du vorhast...
Trägst Du das wirklich so
for /f %%x in ('findstr /C "(ff)" c:\temp\test.txt') do (set /a "error=error+1")
ein?
Was genau bezweckst Du damit?
...do (set /a "error=error+1")
[EDIT]
War wohl nix...
Meine Vorredner haben es wohl besser kapiert, was Du vorhast...
moin deepeblue,
dafür wird es schon eine verblüffend einfache Erklärung geben.. entweder der Suchstring passt nicht oder die Datei ist nicht da.
Bei mir tut es dieser Testschnipsel (vorhin habe ich es auch nur am CMD-Prompt getestet):
Ergebnis mit dem von Dir oben geposteten Text in der c:\temp\test.txt:
Wie weit passt es denn, wenn Du die CMD-Prompt-Vortestereien nachkasperst?
Grüße
Biber
dafür wird es schon eine verblüffend einfache Erklärung geben.. entweder der Suchstring passt nicht oder die Datei ist nicht da.
Bei mir tut es dieser Testschnipsel (vorhin habe ich es auch nur am CMD-Prompt getestet):
@echo off & setlocal
for /f %%x in ('findstr /c:"exit code of (" c:\temp\test.txt^|find /v /c "(0)" ') do set /a ErrCnt=%%x
Echo ErrCnt: [%errCnt%]
Ergebnis mit dem von Dir oben geposteten Text in der c:\temp\test.txt:
>fstest.cmd
ErrCnt: [2]
Wie weit passt es denn, wenn Du die CMD-Prompt-Vortestereien nachkasperst?
Grüße
Biber