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
Please also mark the comments that contributed to the solution of the article
Content-Key: 332880
Url: https://administrator.de/contentid/332880
Printed on: April 23, 2024 at 20:04 o'clock
2 Comments
Latest comment
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