Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Problem mit findstr

Frage Entwicklung Batch & Shell

Mitglied: deepeblue

deepeblue (Level 1) - Jetzt verbinden

29.01.2008, aktualisiert 16:27 Uhr, 7999 Aufrufe, 6 Kommentare

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.
Mitglied: Biber
29.01.2008 um 09:27 Uhr
Moin deepeblue,

willkommen im Forum.

Da solltest Du etwas anders herangehen.
Probiere es mal am CMD-Prompt aus - ein besseres Ergebnis erhieltest Du so.
01.
findstr /c:"exit code of (" c:\temp\test.txt 
02.
Result: The task completed with an exit code of (c000013a). 
03.
Result: The task completed with an exit code of (0). 
04.
Result: The task completed with an exit code of (ff). 
05.
(= 9:22:14  D:\temp=) 
06.
>findstr /c:"exit code of (" c:\temp\test.txt|find /v /c "(0)" 
07.
2
... 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:
01.
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
Bitte warten ..
Mitglied: stbewo
29.01.2008 um 09:40 Uhr
Hi deepeblue,

versuch's mal damit

@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "DELIMS==() TOKENS=2" %%i in (c:\temp\test.txt) do if not "%%i"=="0" (
set /a error+=1
echo Anz. Fehler = !error!
) ELSE (
set /a inOrdnung+=1
echo In Ordnung = !inOrdnung!
)


Gruß
Stefan
Bitte warten ..
Mitglied: rubberduck
29.01.2008 um 09:41 Uhr
Hi,

Trägst Du das wirklich so

01.
for /f %%x in ('findstr /C "(ff)" c:\temp\test.txt') do (set /a "error=error+1")
ein?

Was genau bezweckst Du damit?
01.
...do (set /a "error=error+1")
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...
Bitte warten ..
Mitglied: deepeblue
29.01.2008 um 15:37 Uhr
Hallo Biber,

mit "for /f %%x in ('findstr /c:"exit code of (" c:\temp\test.txt^|find /v /c "(0)" ') do set /a ErrCnt=%%x" bekomme ich als Ergebnis immer 0.
Ich dreh noch durch...

Weitere Tipps?

Danke
Bitte warten ..
Mitglied: Biber
29.01.2008 um 15:57 Uhr
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):
01.
@echo off & setlocal 
02.
for /f %%x in ('findstr /c:"exit code of (" c:\temp\test.txt^|find /v /c "(0)" ') do set /a  ErrCnt=%%x 
03.
Echo ErrCnt: [%errCnt%]
Ergebnis mit dem von Dir oben geposteten Text in der c:\temp\test.txt:
01.
>fstest.cmd 
02.
ErrCnt: [2]
Wie weit passt es denn, wenn Du die CMD-Prompt-Vortestereien nachkasperst?

Grüße
Biber
Bitte warten ..
Mitglied: deepeblue
29.01.2008 um 16:27 Uhr
Ich habs...
Ich muss mein Textfile zuerst mit 'type' in eine andere Datei umleiten, da beim Generieren des Files ein Tab-Zeichen vor dem Suchtext eingefügt wird. Und kaum macht man das, schon geht es wie erwartet.

Vielen Dank an alle!!
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Exchange Server
gelöst Exchange 2013 Outlook 2013 Autodiscover Mailbox Problem (GUID) (4)

Frage von Systembastler zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst Synolgy 1815+ - Rechte- und Richtlinien-Problem User-Ordner Home (3)

Frage von Nintox zum Thema SAN, NAS, DAS ...

Peripheriegeräte
Roccat Ryos - Support verzweifelt an Problem mit Profilen

Frage von sascha382 zum Thema Peripheriegeräte ...

Windows Update
gelöst Windows Server 2012 R2 - WSUS Problem (1)

Frage von aladin.inder zum Thema Windows Update ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (23)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (19)

Frage von smartino zum Thema Mac OS X ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...

Linux Netzwerk
DHCP IP-vergabe erst nach 1-2 Minuten (11)

Frage von Maik82 zum Thema Linux Netzwerk ...