In allen Textdateien eines bestimmten Pfades die Zeilen x bis Ende löschen
Hallo zusammen,
ich möchte für alle Textdateien, die unter einem bestimmten Pfad (z.B. Z:\Test\) abgelegt sind, nur die ersten x Zeilen behalten und alle Zeilen >x löschen. Es wäre schön, wenn auch Textdateien in Unterordnern berücksicktigt werden. Dies ist aber nicht zwingend erforderlich.
Es sollen die Originaltextdateien (z.B. Datei35.txt) und die gekürzten Textdateien (z.B. Datei35_gekürzt.txt) gespeichert werden.
Im Forum habe ich bereits ein Skript gefunden, das eine Textdatei wie gewünscht kürzt:
Bisher hatte ich leider noch nie etwas mit Batch zu tun und bekomme es leider nicht hin, das Batch auf mehrere Textdateien anzuwenden.
Ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte.
Viele Grüße
Schloth
ich möchte für alle Textdateien, die unter einem bestimmten Pfad (z.B. Z:\Test\) abgelegt sind, nur die ersten x Zeilen behalten und alle Zeilen >x löschen. Es wäre schön, wenn auch Textdateien in Unterordnern berücksicktigt werden. Dies ist aber nicht zwingend erforderlich.
Es sollen die Originaltextdateien (z.B. Datei35.txt) und die gekürzten Textdateien (z.B. Datei35_gekürzt.txt) gespeichert werden.
Im Forum habe ich bereits ein Skript gefunden, das eine Textdatei wie gewünscht kürzt:
@echo off & setlocal
set "InFile=Z:\Test\Datei35.txt"
set "OutFile=Z:\Test\Datei35_gekürzt.txt"
set /a LineToDeleteFrom=100
if exist "%OutFile%" del "%OutFile%"
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%InFile%"') do if %%i lss %LineToDeleteFrom% if "%%j"=="" (echo.>>"%OutFile%") else echo %%j>>"%OutFile%"
Bisher hatte ich leider noch nie etwas mit Batch zu tun und bekomme es leider nicht hin, das Batch auf mehrere Textdateien anzuwenden.
Ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte.
Viele Grüße
Schloth
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 332880
Url: https://administrator.de/forum/in-allen-textdateien-eines-bestimmten-pfades-die-zeilen-x-bis-ende-loeschen-332880.html
Ausgedruckt am: 22.04.2025 um 02:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo Schloth.
Wenn die Zeilen in den Dateien eine Länge von 1021 Zeichen nicht überschreiten, könnte es so funktionieren:
Grüße
rubberman
Wenn die Zeilen in den Dateien eine Länge von 1021 Zeichen nicht überschreiten, könnte es so funktionieren:
@echo off &setlocal
set "x=5"
for /r %%i in (*.txt) do (
set "file=%%~dpni"
setlocal EnableDelayedExpansion
<"!file!.txt" >"!file!_gekuerzt.txt" (
for /f %%j in ('type "!file!.txt"^|find /c /v ""') do if %%j geq %x% for /l %%k in (2 1 %x%) do (
set "line=" &set /p "line="
echo(!line!
)
)
endlocal
)
rubberman