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-Key: 82171

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

Printed on: April 20, 2024 at 01:04 o'clock

Member: miniversum
miniversum Mar 03, 2008 at 10:27:41 (UTC)
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
Member: bastla
bastla Mar 03, 2008 at 11:08:59 (UTC)
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
Member: kamel2008
kamel2008 Mar 03, 2008 at 11:51:46 (UTC)
Goto Top
Super besten Dank für die schelle Antwort.
Funktioniert bestens.