77575
16.05.2009, aktualisiert am 10.06.2009
25638
6
0
mehrer Textdateien nach strings durchsuchen und wenn gefunden zeile löschen
hallo an alle,
habe schon die meisten beiträge die meinem gesuch ähnlich sind gelesen, aber bin noch nicht auf eine lösung gekommen.
ich möchte in mehreren textdateien nach mehreren strings suchen und wenn so ein string gefunden wurde die ganze zeile löschen. ich möchte die strings nach denen ich suche in einer seperaten textdatei definieren, so das man diese jederzeit erweitern kann.
hier ein beispiel:
meine datei mit den string definitionen:
2007 Microsoft Office
Java(TM)
Microsoft .NET Framework
Microsoft Office 2003
NVIDIA Drivers
Roxio Creator
Security Update for Windows Internet
Update for Office
Windows Genuine
Yahoo! Toolbar
max mustermann
rechnername: pc834554
notepad++
adobe activex
usw. usw.
diese datei kann durchaus mehrer hundert zeilen enthalten.
dann gibt es einen ordner in dem viele textdateien liegen, in denen ich nach den strings oder teilen davon suchen will und wenn gefunden die ganze zeile löschen. egal an welcher stelle der string steht, egal ob am anfang der zeile oder mittendrin.
es soll z. beispiel jede zeile gelöscht werden die den string "Security Update for Windows" enthält.
es könne auch sonderzeichen wie + -- oder / in den zeilen enthalten sein.
ich hab schon for schleifen probiert , bekomm es aber nicht hin.
ich hoffe ich kann das mit cmd script machen, den vb kann ich noch weniger.
gruss j.
habe schon die meisten beiträge die meinem gesuch ähnlich sind gelesen, aber bin noch nicht auf eine lösung gekommen.
ich möchte in mehreren textdateien nach mehreren strings suchen und wenn so ein string gefunden wurde die ganze zeile löschen. ich möchte die strings nach denen ich suche in einer seperaten textdatei definieren, so das man diese jederzeit erweitern kann.
hier ein beispiel:
meine datei mit den string definitionen:
2007 Microsoft Office
Java(TM)
Microsoft .NET Framework
Microsoft Office 2003
NVIDIA Drivers
Roxio Creator
Security Update for Windows Internet
Update for Office
Windows Genuine
Yahoo! Toolbar
max mustermann
rechnername: pc834554
notepad++
adobe activex
usw. usw.
diese datei kann durchaus mehrer hundert zeilen enthalten.
dann gibt es einen ordner in dem viele textdateien liegen, in denen ich nach den strings oder teilen davon suchen will und wenn gefunden die ganze zeile löschen. egal an welcher stelle der string steht, egal ob am anfang der zeile oder mittendrin.
es soll z. beispiel jede zeile gelöscht werden die den string "Security Update for Windows" enthält.
es könne auch sonderzeichen wie + -- oder / in den zeilen enthalten sein.
ich hab schon for schleifen probiert , bekomm es aber nicht hin.
ich hoffe ich kann das mit cmd script machen, den vb kann ich noch weniger.
gruss j.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116201
Url: https://administrator.de/contentid/116201
Ausgedruckt am: 25.11.2024 um 02:11 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @77575:
Willkommen im Forum 01-01-01 oder j.Schau dir in einem CMD Fenster mal die /V /I und /G Optionen des Findstr Befehls an:
Findstr /?
Das Löschen von Zeilen per Batch geschieht eigentlich immer durch neu schreiben und dabei weglassen.
Damit nicht jede Datei neu geschrieben werden muss, würde ich per Schleife die Dateien testen ob Suchbegriffe vorkommen,
wen nnicht - nächster
wenn ja, das Original umbenennen in bak und das gefiltertete Ergebnis in den Originalnamen schreiben.
:: StripDefinitions.cmd ::::::::::::::::::::::::::::::::::::::::::::
@Echo off&SetLocal
Set Basis=D:\Test\5
Set Defi=D:\Test\Suchen.txt
Set Dateien=*.cmd
:: Set Variablen oberhalb anpassen.
Pushd %Basis%
For /F "Delims=" %%A in ('Dir /B /S /A-D "%Dateien%" '
) Do findstr /I /G:%Defi% "%%A">NUL 2>&1 &&Call :Process "%%~fA"
Popd
Goto :eof
:Process -----------------------------------------------------------
Echo Bearbeite: %~1
If Exist "%~dpn1.Bak" Del /Q "%~dpn1.Bak" >NUL 2>&1
Ren %1 "%~n1.Bak"
findstr /I /V /G:%Defi% "%~dpn1.Bak" >%1
:: start "" /Wait Winmerge %1 "%~dpn1.Bak" & Pause
:: StripDefinitions.cmd ::::::::::::::::::::::::::::::::::::::::::::
Wenn das sehr empfehlenswerte Vergleichstool WinMerge auf dem Rechner vorhanden ist, kann man nach auskommentieren der vorletzten Zeile sehr genau und übersichtlich sehen was in den Dateien geändert wurde.
Gruß
LotPings
Eine hier überrflüssige, in Fleisch und Blut übergegangene Gewohnheit
Gruß
LotPings
Gruß
LotPings
Hallo.
funktioniert so bei mir nicht.
Also mit angepassten Variablen....
L.G.
funktioniert so bei mir nicht.
Also mit angepassten Variablen....
L.G.
Zitat von @127103:
Hallo.
funktioniert so bei mir nicht.
Also mit angepassten Variablen....
L.G.
Hallo.
funktioniert so bei mir nicht.
Also mit angepassten Variablen....
L.G.
Hi.
ich würde dir empfehlen, einen neuen Thread auzumachen. Leichenschändung von 7! Jahren alten Themen ist hier eher weniger gerne gesehen.
(mal abgesehen davon, dass deine Problembeschreibung eher unhilfreich ist)