kamel2008
Goto Top

Text in Zeile löschen

Bestimmte Zeilenanfänge löschen

Hallo zusammen,

ich suche schon seit geraumer Zeit nach einer Lösung für das Problem , fand sie aber nur teilweise oder der Output war nicht zufriedenstellend.
Ich hoffe mir kann jemand helfen.


Problem:

Ich habe ca. 300 .txt Dateien. In diesen Dateien möchte ich die Zeilen welche mit IF und/oder FOR beginnen löschen.

Der Dateiname MUSS dabei in der Ausgabedatei zwingend derselbe sein.

Content-ID: 82171

Url: https://administrator.de/forum/text-in-zeile-loeschen-82171.html

Ausgedruckt am: 22.04.2025 um 07:04 Uhr

miniversum
miniversum 03.03.2008 um 11:27:41 Uhr
Goto Top
Schonmal mit ner Batch versucht?
Mal ungetestet so ungefär:
@echo off
set "quelle=C:\verzeichnis mit den orginaldateien"  
set "ziel=C:\verzeichnis mit den neuen Dateien"  

FOR /F "delims=" %%f in ('dir /B /a-d "%quelle%"') do (  
  echo Verarbeite: "%%~nxf"  

  if exist "%ziel%\%%~nxf" del "%ziel%\%%~nxf"  

  for /f "tokens=1* delims=:" %%k in ('findstr /n $ "%%~ff"') do   
  (
    ((echo.%%l^|findstr /B /I "IF">NUL)||(echo.%%l^|findstr /B /I "FOR">NUL))||echo.%%l>>"%ziel%\%%~nxf"  
  )
)

miniversum
bastla
bastla 03.03.2008 um 12:08:59 Uhr
Goto Top
Hallo kamel2008 und willkommen im Forum!

Der Dateiname MUSS dabei in der Ausgabedatei zwingend derselbe sein.
Soferne Du damit meinst, dass die neue Datei die alte Version ersetzen soll, dann etwa so:
@echo off & setlocal
for %%i in (D:\DeinOrdner\*.txt) do (
	findstr /v /b /i "IF FOR" "%%~fi">"%%~fi.bak"  
	move "%%~fi.bak" "%%~fi"	  
)

Grüße
bastla
kamel2008
kamel2008 03.03.2008 um 12:51:46 Uhr
Goto Top
Super besten Dank für die schelle Antwort.
Funktioniert bestens.