evinben
Goto Top

Mit FINDSTR bestimmte Zeichenfolgen ausschließen. Suche nach Zeilen mit ERROR, schließe aber diejenige mit NON-CRITICAL ERROR aus

hey,

ich bin sehr verwundert, dass ich in der cmd-Hilfe und im Netz dazu nichts finden konnte, um ein Wort bzw. Zeichenfolge bei der Suche auszuschließen, bin mir aber natürlich sicher, dass die "Kleinigkeit" in 1000-de von Variationen umzusetzen ist.

Gut, ich habe mich halt nur auf den mir bekannten Befehl "findstr" versteift und habe lediglich um herum gesucht. Gebe es dazu ein Parameter oder muss ich auf einen alternativen Befehl zugreifen und auf welchen?
~~~~~~

Sorry, dass ich hierfür einen ganz neuen Beitrag erstellen muss, aber ich habe irgendwie nicht geschafft die Beiträge in diesem Forum nach "Aktuellste" zu sortieren und danach nach "findstr" abzufiltern, wo ich mich dann in der aktuellen Gemeinschaft-Strömung um das Thema herum mit meiner banalen Frage einklinken kann.
(Neee, ich meine nicht zwitschern/twittern, sondern richtig in einen Beitrag zu diesem Thema rein und es wäre schon erledigt.)

Danke
Gruß, evin

Content-ID: 172908

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

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

99045
99045 10.09.2011 um 14:52:16 Uhr
Goto Top
Hi,
Zitat von @evinben:
ich bin sehr verwundert, dass ich in der cmd-Hilfe und im Netz dazu nichts finden konnte, um ein Wort bzw. Zeichenfolge bei der
Suche auszuschließen,

Mich verwundert überhaupt nicht mehr, für welche simplen Fragen Foren bemüht werden. Wenn ich was suche, benutze ich erst mal die Hilfemöglichkeiten, die Windows anbietet und werde meistens am eigenen Rechner fündig. Versuch's einfach selbst auch mal.

Gruß
60730
60730 10.09.2011, aktualisiert am 18.10.2012 um 18:48:15 Uhr
Goto Top
moinsen,

also wenn ich mir deine letzten 3 Beiträge anschaue, wundert mich nix mehr - ok - du magst denken, Windows XP ist ja schon 10 Jahre alt, da kann man ja mal 2 Jahre alte Fragen kapern - aber das wäre nur deine Denkweise.

Suche nach Zeilen mit ERROR, schließe aber diejenige mit NON-CRITICAL ERROR aus

Wenn du dir die Hilfe zum Befehl anschaust - was wäre denn deine herangehensweise?
Zuerst alle Zeilen mit ERROR suchen und dann die Zeile, die auch NON-CRITICAL ERROR ausfiltern - das wäre wohl der Weg, den wohl die meisten nehmen würden.
findstr "ERROR" Laufwerk:\pfad\datei |findstr /v "NON-CRITICAL"

Edit:
@ André
Vom Feeling her hab ich das gleiche Gefühl face-sad
etwas "Spass muß sein sprach Wallenstein und schob die kleinen durchgestrichenen Buchstaben mit hinein"
/edit
Skyemugen
Skyemugen 10.09.2011 um 17:10:11 Uhr
Goto Top
Zitat von @60730:
das wäre wohl der Weg, den wohl die meisten nehmen würden.
[OT]
Aloha T-Mo,

tja, inzwischen hab' ich eher das Gefühl, die Meisten nehmen lieber den Weg ins Forum für jeden ... und suchen dann nicht einmal nach irgendetwas ... denn wir haben ja auch so wenig zu derartigen Themen

greetz André
[/OT]
Biber
Biber 11.09.2011 um 14:34:42 Uhr
Goto Top
Moin evinben,

Nachfrage zum Beitragsstatus.

Wie du vielleicht bemerkt haben magst, hast du -sicherlich unabsichtigt- beim Aufdröseln deines Problems ein paar blank liegende Nervenenden anderer Mitglieder mit verarbeitet.
Oder, wie der Volksmund sagt: "Sieht man den Wald vor lauter Bäumen nicht, so schallt es hinaus."

Anyway, auch wenn die Darreichungsform der Lösung etwas gewöhnungsbedürftig erscheinen mag:
  • hast du die versteckte Lösung unter den Schmähschichten gefunden?
  • kannst du inzwischen auch wieder darüber lachen und sagst "Okay, das hätte ich auch wirklich selbst finden können.." ?
  • kann ein Häkchen -passend zum Thread in der Farbe tief in sich ruhender Galle- an den Beitrag?

Grüße
Biber
evinben
evinben 12.09.2011, aktualisiert am 18.10.2012 um 18:48:16 Uhr
Goto Top
Mit FINDSTR bestimmte Zeichenfolgen ausschließen. Suche nach Zeilen mit ERROR, schließe aber diejenige mit NON-CRITICAL ERROR aus
Erstmals danke für die Beteiligung.
Ahm... hier das Missverständnis im Voraus aufzuklären:
In der Hilfe zu dem Parameter /V des Befehls findstr steht
/V Gibt Zeilen aus, die die Zeichenfolge nicht enthalten.“,
d. h. „reversieren“: es werden alle Zeilen ausgegeben, die die gesuchte Zeichenfolge nicht enthalten. Andersrum gesagt: es wird der ganze Müll ausgegeben, der nicht benötigt wird.
Der Beitragsteller hat ja euch gleich von Anfang an erwähnt, dass er die Hilfe gelesen hat und ist selbst nicht zurechtgekommen, was ja nicht schlimm ist - daher braucht er/ich eure Hilfe.
So eine Beschreibung aus derselben Hilfe wie „/R Sucht nach der Zeichenfolge als regulärem Ausdruck.“ ist nicht für jeden zu entziffern. Den Autor deswegen zu beschimpfen wäre nicht der sinnvolle Weg. Jeder tut Fehler – wohl keiner ist perfekt. Mit Hilfe der Foren können solche Lücke mit Klarheit gut ergänzt werden, so dass Foren-Existenz sinnvoller wird.
Liest ihr nun den Titels des Beitrages aufmerksam durch - es sollen nur Zeilen mit "x" ausgegeben werden, wobei solche mit "xxx" zu unterdrücken - so würdet ihr wahrscheinlich mit einer konkreten Lösung behilflich sein.
Ob alle, die sich hier beteiligt haben, die Lösung hierfür wüssten, ist sehr fraglich.
Die Manieren „einer bellt und alle bellen hinterher“ soll – hoffe ich sehr - nicht nun auch in den Administrator-Forum übergehen.
@timobeil lass dich nicht so leicht mitziehen. Entscheide du – alleine du! – für deine Meinung und überlege dir gut, was der andere so nachplappert.
Schwachen soll geholfen werden, was auf die Intelligenz der Menschheit hindeutet, als alleine die kompliziertesten Formel im Kopf zu haben und dennoch als der dümmste Mensch der Erde verbleiben.
Ich habe etwa eine Stunde vor dem Posting danach recherchiert, welche Zeit aber nicht unbedingt umsonst war und ich lerne immer wieder etwas Neues dazu kennen. Nun habe ich erneut etwa eine Stunde investiert und bin immer noch ohne eine Lösung, ist aber nicht so schlimm.
Eigentlich wurde es mir hier im Forum immer wieder sehr gut geholfen und bin dafür sehr dankbar. Das es mal schlechte Nächte geben wird, ist wohl nicht zu vermeiden.
Eine angenehme Abend allen - gut ausschlafen.

Liebe Grüße, evin

PS: Moin @Biber, die Lösung habe ich immer noch nicht, sei so nett und helfe mir. Danke
60730
60730 12.09.2011 um 20:58:21 Uhr
Goto Top
Zitat von @evinben:
PS: Moin @Biber, die Lösung habe ich immer noch nicht, sein so nett und helfe mir. Danke

  • hüstel...

Zitat von @60730:
Zuerst alle Zeilen mit ERROR suchen und dann die Zeile, die auch NON-CRITICAL ERROR ausfiltern - das wäre wohl der Weg, den wohl die meisten nehmen würden.

back-to-topfindstr "ERROR" Laufwerk:\pfad\datei |findstr /v "NON-CRITICAL"


Gruß und kleb den grünen Haken an den Fred...
Biber
Biber 12.09.2011 um 21:15:26 Uhr
Goto Top
Moin evinben & T-Mo,

ergänzend zu T-Mo's Zeile noch die Anmerkung:
Der einzige Trick (der so explizit NICHT in der FindStr-Hilfe beschrieben ist) ist die Verkettung von zwei FindStr-Befehlen mit der so genannten Pipe "|".
Etwas pipen klingt wahnsinnig professionell, bedeutet aber nichts weiter, als den Output des ersten Befehls als Input für den nächsten Befehl zu verwenden.

Also erstes Findstr ->alle Sätze mit "ERROR" gehen raus als Output und sofort wieder als Input rein in den zweiten Findstr, der alle Zeilen mit "NON-CRITICAL"absaugt.

Wir hantieren hier so oft mit Pipes (siehe beispielsweise T-Mo's Augenklappe -das war ein vierfacher Pipe-Befehl), dass wir manchmal vergessen, dass die einem Findstr-Verwender vielleicht nicht so vertraut sind.

@t-mo
Danke

Grüße
Biber
99045
99045 12.09.2011 um 21:21:50 Uhr
Goto Top
Zitat von @evinben:
Der Beitragsteller hat ja euch gleich von Anfang an erwähnt, dass er die Hilfe gelesen hat und ist selbst nicht
zurechtgekommen, was ja nicht schlimm ist - daher braucht er/ich eure Hilfe.

Stimmt nicht. Der Beitragsersteller hat gleich zu Anfang erwähnt, dass er verwundert ist, dass er nirgendwo edit, nachgetragen in der Hilfe und im Netz was finden konnte.

Und wenn ich sowas lese, sträuben sich meine Nackenhaare. Dafür, dass du dich ziemlich dusselig angestellt hast, lässt du hier aber ganz schön vom Leder.
Oder möchtest du allen Ernstes behaupten, in der Hilfe zu findstr stände und im gesamten Netz stände nichts, womit ein durchschnittlich begabter User was anfangen könnte?
evinben
evinben 13.09.2011 um 06:59:30 Uhr
Goto Top
Gruß @timobeil,
so wie ich sehe hast du mit der Befehlszeile noch am Anfang an doch ernst gemeint. Leider funktioniert diese Lösung hier nicht und es werden weiterhin solche Zeilen mit „non-critical error“ ausgegeben.
Alles befindet sich, inkl. der Batch-Datei, in einem Ordner. In der Batch-Datei ist folgendes eingetragen:
 findstr /c:"error" ".\CBS.log" >"CBS.log [SR].txt" |findstr /v "non-critical"    

Anbei ist ein Ausschnitt aus dem Ergebnis:

2011-09-10 00:12:03, Error CBS Exec: An error occurred while committing the transaction, the transaction has been rolled back.
2011-09-10 00:18:19, Info CBS Appl: DetectUpdate, Package: Package_5_for_KB937286~31bf3856ad364e35~x86~de-DE~6.0.1.18000, Remote Parent:
CoreClientCollectionBusinessEdition, Parent Missing (ERROR_FILE_NOT_FOUND), non-critical error, ignored, check case sensitivity
2011-09-10 00:18:19, Info CBS Appl: DetectUpdate, Package: Package_5_for_KB937286~31bf3856ad364e35~x86~de-DE~6.0.1.18000, Remote Parent:
CoreClientEnterprise, Parent Missing (ERROR_FILE_NOT_FOUND), non-critical error, ignored, check case sensitivity
2011-09-10 00:18:19, Info CBS Appl: DetectUpdate, Package: Package_5_for_KB937286~31bf3856ad364e35~x86~de-DE~6.0.1.18000, Remote Parent:
CoreClientEnterpriseN, Parent Missing (ERROR_FILE_NOT_FOUND), non-critical error, ignored, check case sensitivity

Woran könnte es liegen?

Gruß @Biber,
ich schätze sehr eure Zeit mir hier zu helfen und nehme es nicht als selbstverständlich. Herzlichen Dank für die klare Erklärung. Ab nun weiß ich den Trick mit der Pipe - klasse!

Ich bedanke mich für eure Bemühungen.

PS:
Hey Kaputtnick,
du bist ja lustig. Wenn du dich wagst so etwas zu behaupten und mich hier als unehrlich zu stellen, dann solltest du auch paar konkrete Beispiele aus der Hilfe im Netz und aus der Microsoft Hilfe zeigen, die explizit darauf hinweisen und nicht einfach so „deine Nackenhaare stäuben“.
Na, was ist…? Doch schwer…? Lerne für die Zukunft nachzudenken, bevor du dich so äußerst - sonst wirst du vielleicht kaputtnickt ;)
Sorry, dass ich kein IT-Experte sondern vom Beruf her Bäcker bin (ist egal aber völlig daneben zu IT) und, dass ich erst vor etwa zwei Jahren etwas von Batch gehört habe. Jeder fängt klein an – sollte zumindest. Jedenfalls wichtig ist es Schritte vorwärts zu machen. Wenn du begabt bist, dann teile es mit und sei nicht egoistisch. Sorry, dass ich kein „begabter User“ bin, obwohl ich in meiner Sozialumgebung übertrieben als Profi in der Richtung eingestuft werde. Aber na ja, alles ist im Leben eine Relativierung. Du hast recht, ich bin keiner und werde nie so einen sein– möchte auch nicht. Meine Ziele sind anders.
Skyemugen
Skyemugen 13.09.2011 um 08:04:03 Uhr
Goto Top
Aloha,

.. moment, du schreibst das Ergebnis von findstr in die Log und wunderst dich, dass findstr /v nicht greift? ....

eventuell sollte man erst das Ergebnis ins Log schreiben, nachdem der ganze Befehl durchlief (?) ...

greetz André

P.S.:
Beruf her Becker

... interessant, du meinst also Tennisspieler?
evinben
evinben 13.09.2011 um 08:49:56 Uhr
Goto Top
stopp... stopp...stopp


.. moment, du schreibst das Ergebnis von findstr in die Log und wunderst dich, dass findstr /v nicht greift? ....

nein, ich wundere mich, dass dieser Ansatz hier vorgeschlagen wird, da in der Hilfe zu findtsr der Parameter eine andere Funktion aufweist - nämlich diejenige, die du auch ansprichst. Daher habe ich mich von TimoBeil mich verspottet gefüllt.

@Skyemugen, lies mal bitte den Beitrag vom Anfang an vollständig durch, bevor es hier bis zur Unkenntnis durcheinander wird.
Danke

Ich stelle bedauerlicherweise fest, dass hier anscheinend keiner begriffen hat, um was es geht, aber alle haben gleich angefangen mit Steinen zu bewerfen.

Alle sind Profi, aber Lösung immer noch keine. Es ist überhaupt nicht peinlich etwas nicht zu wissen, es ist peinlich angeberisch und wichtigtuerisch zu sein. Wenn ihr die Lösung nicht kennt, dann lernt ihr zuzugeben, dass ihr es nicht könnt.

@Timo/@Biber sorry - ihr habt mir so weit immer gut geholfen und eure Artikel waren mir immer sehr hilfreich. Ist ok

Gruß
Skyemugen
Skyemugen 13.09.2011 um 09:23:57 Uhr
Goto Top
...
da in der Hilfe zu findtsr der Parameter eine andere Funktion aufweist

Nein?
>findstr /?
Sucht nach Zeichenfolgen in Dateien.
/V    Gibt Zeilen aus, die die Zeichenfolge nicht enthalten.

Wo ist dein Problem? Es wurde auch bereits erklärt ... dass du die Pipe in dem Befehl nicht finden wirst, ist eine andere Sache und gehört da auch gar nicht rein (in die Befehlsbeschreibung) ...

Leider funktioniert diese Lösung hier nicht
Und ich habe dir auch fett dargestellt, weshalb ... aber bitte, wer glauben will, dass man hier nur mit Steinen werfen will, der bleibt dann bitte im Felshaufen stecken.
Aber gut, hier noch einmal ein kleines prompt-Spiel mit der Textdatei fehlerdatei.txt und ihrem Inhalt:
Also in dieser Zeile steht error mitten im Satz ...
Und in dieser zeile steht dann noch non-critical error ...
und weil es so errormaessig lustig ist,
steht error hier an zweiter Stelle gefolgt von non-critical error am Ende ...
und was lernen wir daraus?
und dann die cmd-Befehlszeile:
findstr /c:"error" "E:\Skripte\fehlerdatei.txt" |findstr /v "non-critical"
was als Ausgabe bringt:
Also in dieser Zeile steht error mitten im Satz ...
und weil es so errormaessig lustig ist,

Und wenn Error und error vorkommen, nutzt man noch ein /i beim ersten findstr und ignoriert Groß- und Kleinschreibung und wenn man das in eine neue Textdatei haben will, stellt man das am Ende an ...
C:\Dokumente und Einstellungen\Benutzername>findstr /c:"error" "E:\Skripte\fehlerdat
ei.txt" |findstr /v "non-critical">E:\Skripte\Fehlerausgabe.txt && type E:\Skrip
te\Fehlerausgabe.txt
Also in dieser Zeile steht error mitten im Satz ...
und weil es so errormaessig lustig ist,

Und ob man das /c: so unbedingt benötigt bei einem Wort, ist eine andere Sache aber die kann sich der TE auch selbst erklären, ich wollte nur nahe an seinem zuletzt gepostetem code arbeiten ...
...
evinben
evinben 13.09.2011 um 10:52:14 Uhr
Goto Top
Hallo @Skyemugen,

danke sehr. Was ich erst jetzt erfahre ist, dass die Ausgabe-Datei unbedingt nach finstr /v sein muss. Grundkenntnisse sind selbstverständlich vorausgesetzt.

Das mit dem Piepen war es echt eine gute Lektüre für mich.

Erwartet ihr tatsächlich von allen hier, dass diese Kenntnisse selbstverständlich sind sonst wird derjenige angemotzt?
Ehrlich gesagt ich habe deutlich mehr als eine Stunden vor dem Posting recherchiert, aber war mich doch etwas unangenehm zu zugeben. Nun stelle ich fest, dass ich ohne eure Hilfe nicht mal nach Tagen zurecht gekommen wäre...?

Das war jedenfalls heftiger Beitrag für mich und hoffe sehr zukünftig wird es etwas freundlicher ablaufen.

TimoBeil,
in deinem ersten Beispiel oben ist das Piep-Zeichen optisch als \ Schrägstrich zu sehen. Es war im Ernsten von dir sinnvoll in deiner nächsten Antwort diese Befehlszeile groß darzustellen, daher dachte ich, dass es nicht ernst gemeinst war:
findstr "ERROR" Laufwerk:\pfad\datei |findstr /v "NON-CRITICAL"

Danke sehr an allen, auch an den Kaputtnick (ich habe etwas Angst von dir - ist das dein Foto?).
Skyemugen
Skyemugen 13.09.2011 um 11:11:01 Uhr
Goto Top
Zitat von @evinben:
Was ich erst jetzt erfahre ist, dass die Ausgabe-Datei unbedingt nach finstr /v sein muss.
Aloha,

nö, das habe ich dir auch vorher in fett schon versucht zu erklären.

Grundkenntnisse sind selbstverständlich vorausgesetzt.
auch hier wieder ein von mir => logisches Denken, mehr ist das nicht, in der Mathematik versuchst du ja auch nicht bei 2*7+5-3 das Endergebnis mittendrin herauszubekommen face-wink

Oder suchst du das Ende einer Verkettung (von Befehlen) im mittleren Kettenglied? face-wink

Dass du nichts von der Pfeife wusstest, ist wie bereits geschrieben, eine andere Sache und das wirft dir hier auch niemand vor m.M.n. wobei man gerade hier im Forum so viele Batch-Threads hat, dass man hätte darüber stoßen können, innerhalb weniger Minuten face-wink (btw. gab es da nicht so schöne Sachen wie Workshop Batch for Runaways - Part II - Ein bisschen Handwerkszeug ... Zitat daraus:
- mit "|" den Output einer Anweisung als Input für die nächste Anweisung verwenden

greetz André
Biber
Biber 13.09.2011 um 11:11:21 Uhr
Goto Top
[OT]
Moin evinben,

Zitat von @evinben:
Danke sehr an allen, auch an den Kaputtnick (ich habe etwas Angst von dir - ist das dein Foto?).
Ausgeschlossen - könnte jemand in diesem meditativen Forum so viele Haare auf den Zähnen haben?
Dann könntest du ebenso bei T-Mo's Avatar annehmen, er hätte ein Auge auf dich geworfen...

P.S. Machst du, wenn du den Beitrag hier verdaut hast, auch einen grünen Haken dran bitte?
Also nich' jezz' an das Verdaute, sondern....

Grüße
Biber
[/OT]
60730
60730 13.09.2011 um 13:55:25 Uhr
Goto Top
moin,

[1/2 OT]

früher war alles besser, da gabs zu jedem Satz Floppys auch ein Buch MS DOS (xyz) und in dem waren auch ganz viele nette Tipps drin.

Heute gibts nur noch das Internet

[/1/2 OT]

Gruß