Mehrere Zeilen aus einer Anzahl von Textdateien per Batch entfernen
Hi Leute,
erst mal ein dickes moin an euch !
Ich habe folgende Sache und hoffe das ihr mir vielleicht helfen könnt. Folgender Fall:
Ich habe eine hohe Anzahl von *.*txt Dateien die mit gewissem Content gefüllt sind. Jede Textdatei beinhaltet einen großen Text über eine Vielzahl von Zeilen verteilt. Ich würde gerne aus allen TXT dateien alle Zeilen außer die ersten 3 löschen...Da sind die wichtigsten Informationen drin, die ich benötige ! alles andere würde ich gerne rausfiltern..
Wäre cool wenn ihr mir da helfen könntet... gruß Luke
erst mal ein dickes moin an euch !
Ich habe folgende Sache und hoffe das ihr mir vielleicht helfen könnt. Folgender Fall:
Ich habe eine hohe Anzahl von *.*txt Dateien die mit gewissem Content gefüllt sind. Jede Textdatei beinhaltet einen großen Text über eine Vielzahl von Zeilen verteilt. Ich würde gerne aus allen TXT dateien alle Zeilen außer die ersten 3 löschen...Da sind die wichtigsten Informationen drin, die ich benötige ! alles andere würde ich gerne rausfiltern..
Wäre cool wenn ihr mir da helfen könntet... gruß Luke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 296791
Url: https://administrator.de/forum/mehrere-zeilen-aus-einer-anzahl-von-textdateien-per-batch-entfernen-296791.html
Ausgedruckt am: 02.05.2025 um 02:05 Uhr
4 Kommentare
Neuester Kommentar
Hallo lukeskywalker501.
Speichere folgenden Batchcode in das Verzeichnis mit deinen Textdateien:
Grüße
rubberman
Speichere folgenden Batchcode in das Verzeichnis mit deinen Textdateien:
@echo off &setlocal DisableDelayedExpansion
for %%i in (*.txt) do (
set "file=%%i"
setlocal EnableDelayedExpansion
for /f %%j in ('type "!file!"^|find /c /v ""') do if %%j gtr 3 (
<"!file!" >"3lines.tmp~" (
for /l %%k in (1 1 3) do (
set "ln=" &set /p "ln="
echo(!ln!
)
)
>nul move /y "3lines.tmp~" "!file!"
)
endlocal
)
Grüße
rubberman

Moin.
Und wer es etwas moderner möchte, mit Powershell ein kurzer one liner
Die Anwendung In einer Batch ist ebenso möglich
Gruß jodel32
Und wer es etwas moderner möchte, mit Powershell ein kurzer one liner
gci 'c:\Ordner\*.txt' | %{(gc $_.Fullname -TotalCount 3) | set-content $_.Fullname}
Die Anwendung In einer Batch ist ebenso möglich
@echo off
powershell -Executionpolicy Bypass -Command "gci 'c:\Ordner\*.txt' | %%{(gc $_.Fullname -TotalCount 3) | set-content $_.Fullname}"
Gruß jodel32

Gern geschehen.
jodel
@jodel... der hat jetzt doch einiges an Content rausgehauen..wenn ich jetzt beispielsweise ab Zeile 4 alles raushauen wollte, müsst ich nur den {(gc $_.Fullname -TotalCount 3 --> zähler auf 4 oder 5 etc. setzen oder?
Korrekt. Der Parameter besagt wie viele Zeilen er aus der jeweiligen Textdatei vom Anfang an aus übernimmt.jodel