derwowusste
Goto Top

Findstr Slash v ärgert mich - Ersatz gesucht.

Hallo liebe Kollegen!

Da findstr /v seltsames Verhalten aufweist (sieht nach einem Bug aus, aber das will ich hier nicht breittreten, nur soviel: es hat nichts mit vermeintlich verwendeten Punkten zu tun), suche ich nach Ersatz. Welches andere Kommandozeilentool beherrscht diese Art Filterung? (findstr /v "String1 String2 ..." Zieldatei gibt alle Zeilen einer Textdatei aus, die nicht String1 und String2 und... enthalten)

Content-ID: 173215

Url: https://administrator.de/forum/findstr-slash-v-aergert-mich-ersatz-gesucht-173215.html

Ausgedruckt am: 03.04.2025 um 18:04 Uhr

60730
60730 16.09.2011 um 10:02:32 Uhr
Goto Top
Salü,

aber das will ich hier nicht breittreten,

ähmm insider? a la Biber & Bastla intern

<code type plain>
N:\>ver

Microsoft Windows XP [Version 5.1.2600]

N:\>type C:\script\test\finderstringer.ini
1 String1
2 String2
3 String3
...

Hallo DWW
N:\>findstr /v "String1 String2 ..." C:\script\test\finderstringer.ini
3 String3

Hallo DWW
N:\>


Zeile 4 ist wirklich eine Leerzeile.

Wo klemmt es denn?

Doch bitte lass es uns breittreten, denn wir (hier) nutzen doch immer gerne solche ollen Werkzeuge, da sollte man jeden Bockug kennen, sonst fällt doch der nächste auch mal auf die Nase...

Gruß
DerWoWusste
DerWoWusste 16.09.2011 um 10:41:47 Uhr
Goto Top
...ok, you asked for it...
Textdatei:
---
C:\windows\WindowsUpdate.log
C:\windows\Logs\CBS\CBS.log
C:\windows\rescache\rc0009\ResCache.hit
C:\windows\ServiceProfiles\NetworkService\AppData\Local\Temp\MpCmdRun.log
C:\windows\servicing\Sessions\Sessions.back.xml
C:\windows\servicing\Sessions\Sessions.xml
C:\windows\SoftwareDistribution\ReportingEvents.log
C:\windows\SoftwareDistribution\DataStore\DataStore.edb
C:\windows\SoftwareDistribution\DataStore\Logs\edb.chk
C:\windows\SoftwareDistribution\DataStore\Logs\edb.log
C:\windows\System32\catroot2\dberr.txt
C:\windows\System32\LogFiles\Scm\3cdb3c57-5945-4fa9-8e4d-f8bd141f0f8f
C:\windows\System32\LogFiles\Scm\521d1619-41b3-4344-9aef-046f98f949a5
C:\windows\System32\LogFiles\Scm\5c571bff-df7d-4678-8297-7a6e5833b2e3
C:\windows\System32\LogFiles\Scm\5ffe3740-3775-41b7-aa9c-84632a1c1105
C:\windows\System32\LogFiles\Scm\69110d7b-41dc-4e9d-bdd3-c826c7db613b
C:\windows\System32\LogFiles\Scm\afece848-8da2-461b-b5e6-cbef57a4df7d
C:\windows\System32\LogFiles\Scm\c4e94ce6-2386-4c13-a712-f621743306ab
C:\windows\System32\LogFiles\Scm\c7847981-48e6-476f-9581-4bbd8e73f7c5
C:\windows\System32\LogFiles\Scm\c925dbcf-37d6-449f-9035-db1a3e2805af
C:\windows\System32\LogFiles\Scm\cd264f70-fd14-48ea-9d74-f52f1d1d3f89
C:\windows\System32\LogFiles\Scm\ddb62c95-d63d-4a59-b7c5-224fa446a980
C:\windows\System32\LogFiles\Scm\ed193743-7050-42e1-9d98-60bf608154af
C:\windows\System32\LogFiles\Scm\ee644074-1d4a-432a-801a-840d85f9b1fd
C:\windows\Temp\EventCombMT.txt
C:\windows\Temp\MpCmdRun.log
C:\windows\winsxs\ManifestCache\a786a517e28d5687_blobs.bin
---

findstr /v "C:\windows\servicing\Sessions C:\windows\Temp\MpCmdRun C:\windows\System32\catroot2 C:\windows\debug\WIA\wiatrace C:\windows\SoftwareDistribution C:\windows\WindowsUpdate C:\windows\Temp C:\windows\Logs C:\windows\rescache C:\windows\AppCompat C:\windows\System32\LogFiles C:\windows\ServiceProfiles\LocalService\AppData\Local\FontCach C:\windows\debug\PASSWD.LOG C:\windows\bootstat C:\windows\setupact C:\windows\debug\wlms C:\windows\Tasks\SCHEDLGU C:\windows\System32\catroot2e C:\windows\ServiceProfiles\NetworkService\AppData\Local\Temp C:\windows\winsxs\ManifestCache C:\windows\ServiceProfiles\NetworkService" Textdatei  
Erwartete Ausgabe: nix, nada.
Tatsächliche Ausgabe:
C:\windows\servicing\Sessions\Sessions.back.xml
C:\windows\servicing\Sessions\Sessions.xml
C:\windows\SoftwareDistribution\ReportingEvents.log
C:\windows\SoftwareDistribution\DataStore\DataStore.edb
C:\windows\SoftwareDistribution\DataStore\Logs\edb.chk
C:\windows\SoftwareDistribution\DataStore\Logs\edb.log
C:\windows\System32\catroot2\dberr.txt
C:\windows\System32\LogFiles\Scm\3cdb3c57-5945-4fa9-8e4d-f8bd141f0f8f
C:\windows\System32\LogFiles\Scm\521d1619-41b3-4344-9aef-046f98f949a5
C:\windows\System32\LogFiles\Scm\5c571bff-df7d-4678-8297-7a6e5833b2e3
C:\windows\System32\LogFiles\Scm\5ffe3740-3775-41b7-aa9c-84632a1c1105
C:\windows\System32\LogFiles\Scm\69110d7b-41dc-4e9d-bdd3-c826c7db613b
C:\windows\System32\LogFiles\Scm\afece848-8da2-461b-b5e6-cbef57a4df7d
C:\windows\System32\LogFiles\Scm\c4e94ce6-2386-4c13-a712-f621743306ab
C:\windows\System32\LogFiles\Scm\c7847981-48e6-476f-9581-4bbd8e73f7c5
C:\windows\System32\LogFiles\Scm\c925dbcf-37d6-449f-9035-db1a3e2805af
C:\windows\System32\LogFiles\Scm\cd264f70-fd14-48ea-9d74-f52f1d1d3f89
C:\windows\System32\LogFiles\Scm\ddb62c95-d63d-4a59-b7c5-224fa446a980
C:\windows\System32\LogFiles\Scm\ed193743-7050-42e1-9d98-60bf608154af
C:\windows\System32\LogFiles\Scm\ee644074-1d4a-432a-801a-840d85f9b1fd

Beobachtetes Phänomen: Entferne ich den Suchstring C:\windows\servicing\Sessions, ist die Ausgabe erstaunlicherweise wie erwartet
---
C:\windows\servicing\Sessions\Sessions.back
C:\windows\servicing\Sessions\Sessions.xml
---

Kannst Du ja gerne mal analysieren.
DerWoWusste
DerWoWusste 16.09.2011 um 10:47:07 Uhr
Goto Top
Achtung: ich habe mich bei der Textdatei oben korrigiert. Zeile mit reg_hkcu ist nicht mehr drin, sorry.
Skyemugen
Skyemugen 16.09.2011 um 11:29:43 Uhr
Goto Top
Aloha,

nutze mal findstr /i /v und du wirst überrascht sein face-wink

greetz André
DerWoWusste
DerWoWusste 16.09.2011 um 11:34:30 Uhr
Goto Top
Oh face-smile
es ist nicht so, dass ich /i nicht kenne. Aber warum wirkt das hier so?
Danke!
miniversum
miniversum 16.09.2011 um 11:34:33 Uhr
Goto Top
Kann es schlicht und ergreifend sein das der gesamte Ausdruck zu lang ist?
Skyemugen
Skyemugen 16.09.2011 um 11:38:20 Uhr
Goto Top
Zitat von @DerWoWusste:
Oh face-smile
es ist nicht so, dass ich /i nicht kenne. Aber warum wirkt das hier so?
Danke!

Aloha,

tbh: Eine gute Frage, auf die ich selber keine Antwort weiß face-wink aber i.d.R. würde man auch nicht so Filtern wie hier im Beispiel ^_^

greetz André
99045
99045 16.09.2011 um 11:45:43 Uhr
Goto Top
Datei Input.txt
<code type=plain">
C:\windows\WindowsUpdate.log
C:\windows\Logs\CBS\CBS.log
C:\windows\rescache\rc0009\ResCache.hit
C:\windows\ServiceProfiles\NetworkService\AppData\Local\Temp\MpCmdRun.log
C:\windows\servicing\Sessions\Sessions.back.xml
C:\windows\servicing\Sessions\Sessions.xml
C:\windows\SoftwareDistribution\ReportingEvents.log
C:\windows\SoftwareDistribution\DataStore\DataStore.edb
C:\windows\SoftwareDistribution\DataStore\Logs\edb.chk
C:\windows\SoftwareDistribution\DataStore\Logs\edb.log
C:\windows\System32\catroot2\dberr.txt
C:\windows\System32\LogFiles\Scm\3cdb3c57-5945-4fa9-8e4d-f8bd141f0f8f
C:\windows\System32\LogFiles\Scm\521d1619-41b3-4344-9aef-046f98f949a5
C:\windows\System32\LogFiles\Scm\5c571bff-df7d-4678-8297-7a6e5833b2e3
C:\windows\System32\LogFiles\Scm\5ffe3740-3775-41b7-aa9c-84632a1c1105
C:\windows\System32\LogFiles\Scm\69110d7b-41dc-4e9d-bdd3-c826c7db613b
C:\windows\System32\LogFiles\Scm\afece848-8da2-461b-b5e6-cbef57a4df7d
C:\windows\System32\LogFiles\Scm\c4e94ce6-2386-4c13-a712-f621743306ab
C:\windows\System32\LogFiles\Scm\c7847981-48e6-476f-9581-4bbd8e73f7c5
C:\windows\System32\LogFiles\Scm\c925dbcf-37d6-449f-9035-db1a3e2805af
C:\windows\System32\LogFiles\Scm\cd264f70-fd14-48ea-9d74-f52f1d1d3f89
C:\windows\System32\LogFiles\Scm\ddb62c95-d63d-4a59-b7c5-224fa446a980
C:\windows\System32\LogFiles\Scm\ed193743-7050-42e1-9d98-60bf608154af
C:\windows\System32\LogFiles\Scm\ee644074-1d4a-432a-801a-840d85f9b1fd
C:\windows\Temp\EventCombMT.txt
C:\windows\Temp\MpCmdRun.log
C:\windows\winsxs\ManifestCache\a786a517e28d5687_blobs.bin


Datei Suchliste.txt
<code type=plain">
/V C:\windows\servicing\Sessions
/V C:\windows\Temp\MpCmdRun
/V C:\windows\System32\catroot2
/V C:\windows\debug\WIA\wiatrace
/V C:\windows\SoftwareDistribution
/V C:\windows\WindowsUpdate
/V C:\windows\Temp
/V C:\windows\Logs
/V C:\windows\rescache
/V C:\windows\AppCompat
/V C:\windows\System32\LogFiles
/V C:\windows\ServiceProfiles\LocalService\AppData\Local\FontCach
/V C:\windows\debug\PASSWD.LOG
/V C:\windows\bootstat
/V C:\windows\setupact
/V C:\windows\debug\wlms
/V C:\windows\Tasks\SCHEDLGU
/V C:\windows\System32\catroot2e
/V C:\windows\ServiceProfiles\NetworkService\AppData\Local\Temp
/V C:\windows\winsxs\ManifestCache
/V C:\windows\ServiceProfiles\NetworkService


Edit: Die Suchliste ist zu lang. Mit weniger Begriffen/Text klappt es.

Befehl oder Batch
<code type=plain">
findstr /G:suchliste.txt input.txt
DerWoWusste
DerWoWusste 16.09.2011 um 13:11:45 Uhr
Goto Top
Kann es schlicht und ergreifend sein das der gesamte Ausdruck zu lang ist?
Nee. Man kann irgendetwas anderes längeres an Stelle von C:\windows\servicing\Sessions nehmen und es geht dennoch wie erwartet.
DerWoWusste
DerWoWusste 16.09.2011 um 13:14:14 Uhr
Goto Top
Ich schließe mal.

Danke an Skye... und Kaputtnick und andere, damit sollte es auch in Zukunft klappen, egal wieviel Kram wir noch rausfiltern müssen.

PS: gibt es nicht dennoch einen Ersatz für findstr /v?
Skyemugen
Skyemugen 16.09.2011 um 13:27:28 Uhr
Goto Top
Aloha,

zu deinem P.S.: zwar arbeite ich selbst nicht damit aber eventuell wäre grep (ist auch für Windows verfügbar) eine mögliche Alternative.

greetz André
DerWoWusste
DerWoWusste 16.09.2011 um 13:54:24 Uhr
Goto Top
Klar... wingrep, hab ich vor Jahren auch mal gekannt ;)
bastla
bastla 16.09.2011 um 15:01:52 Uhr
Goto Top
@99045
Bei mir funktioniert - analog zum Vorschlag von Skye - die Schreibweise
findstr /I /V /G:suchliste.txt input.txt
(und dann natürlich ohne die "/V", aber testweise mit der doppelten Anzahl an Zeilen in der Suchliste) - und so wäre das dann auch am übersichtlichsten ...

Grüße
bastla
99045
99045 16.09.2011 um 15:08:49 Uhr
Goto Top
@bastla
Bei mir auch. Ich hatte beim Testen Fehler gemacht. face-smile
Man darf die Parameter nur ent oder weder einsetzen, nicht im Kommando und in der /G-Datei.

Gruß