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

mehrer Textdateien nach strings durchsuchen und wenn gefunden zeile löschen

Frage Entwicklung Batch & Shell

Mitglied: 77575

77575 (Level 1)

16.05.2009, aktualisiert 10.06.2009, 18249 Aufrufe, 6 Kommentare

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.
Mitglied: LotPings
16.05.2009 um 09:15 Uhr
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.

01.
:: StripDefinitions.cmd :::::::::::::::::::::::::::::::::::::::::::: 
02.
@Echo off&SetLocal  
03.
Set Basis=D:\Test\5 
04.
Set Defi=D:\Test\Suchen.txt 
05.
Set Dateien=*.cmd 
06.
:: Set Variablen oberhalb anpassen. 
07.
Pushd %Basis% 
08.
For /F "Delims=" %%A in ('Dir /B /S /A-D "%Dateien%" ' 
09.
  ) Do findstr /I /G:%Defi% "%%A">NUL 2>&1 &&Call :Process "%%~fA" 
10.
Popd 
11.
Goto :eof 
12.
:Process ----------------------------------------------------------- 
13.
Echo Bearbeite: %~1 
14.
If Exist "%~dpn1.Bak" Del /Q "%~dpn1.Bak" >NUL 2>&1  
15.
Ren %1 "%~n1.Bak"  
16.
findstr /I /V /G:%Defi% "%~dpn1.Bak" >%1 
17.
:: start "" /Wait Winmerge %1 "%~dpn1.Bak" & Pause 
18.
:: 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
Bitte warten ..
Mitglied: bastla
16.05.2009 um 11:32 Uhr
@LotPings: Nur interessehalber: Wozu das "/Q" beim "Del"-Befehl?

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
16.05.2009 um 12:31 Uhr
Zitat von bastla:
Nur interessehalber: Wozu das "/Q" beim "Del"-Befehl?
Eine hier überrflüssige, in Fleisch und Blut übergegangene Gewohnheit

Gruß
LotPings
Bitte warten ..
Mitglied: 77575
16.05.2009 um 18:27 Uhr
hallo LotPings,

du hast mein wochenende gerettet.
das funktioniert einwandfrei.
und das per cmd und läuft total schnell.

super, 1000 dank!!!!

gruss j.
Bitte warten ..
Mitglied: cuilster
18.02.2016 um 15:35 Uhr
Hallo.

funktioniert so bei mir nicht.

Also mit angepassten Variablen....

L.G.
Bitte warten ..
Mitglied: TlBERlUS
18.02.2016 um 15:46 Uhr
Zitat von cuilster:

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)
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Poweshell Script soll String ersetzen und die leere Zeile löschen (4)

Frage von Mars123 zum Thema Batch & Shell ...

VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

Batch & Shell
Parsen mehrer Dateien und Ausgabe je einer Zeile (1)

Frage von grka zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...