Batch Befehl zum Löschen von den letzten vier Zeilen mehrerer txt.-Dateien
Hallo Community,
leider weiß ich bezüglich einer Batch-Dateizum Löschen von den letzten vier Zeilen mehrerer txt.-Dateien nicht mehr weiter.
Es sollen Datensätze à 1000 txt.-Dateien bearbeitet werden. Einen Ansatz zum Löschen der letzten Zeile habe ich gefunden, doch das Einlesen und Bearbeiten der 1000 Dateien bereitet mir Probleme. Ich suche eine For-Schleife, welche mir die Dateien (hier in meinem Fall: 1.txt, ..., 1000.txt), welche alle in einem Ordner liegen, hochzählt, dort die letzten 4 Zeilen löscht und diese wieder speichert.
Mein Batch zum Löschen der letzten Zeile sieht wie folgt aus:
Mir fehlt wie gesagt eine for-Schleife, welche mir alle Daten einzeln einließt, die letzten 4 Zeilen löscht und die txt. wieder speichert.
Eure Hilfe wäre sehr praktisch!
leider weiß ich bezüglich einer Batch-Dateizum Löschen von den letzten vier Zeilen mehrerer txt.-Dateien nicht mehr weiter.
Es sollen Datensätze à 1000 txt.-Dateien bearbeitet werden. Einen Ansatz zum Löschen der letzten Zeile habe ich gefunden, doch das Einlesen und Bearbeiten der 1000 Dateien bereitet mir Probleme. Ich suche eine For-Schleife, welche mir die Dateien (hier in meinem Fall: 1.txt, ..., 1000.txt), welche alle in einem Ordner liegen, hochzählt, dort die letzten 4 Zeilen löscht und diese wieder speichert.
Mein Batch zum Löschen der letzten Zeile sieht wie folgt aus:
@Echo Off
SetLocal DisableDelayedExpansion
Set "SrcFile=1.txt"
If Not Exist "%SrcFile%" Exit /B
Copy /Y "%SrcFile%" "%SrcFile%.bak">Nul 2>&1||Exit /B
( Set "Line="
For /F "UseBackQ Delims=" %%A In ("%SrcFile%.bak") Do (
SetLocal EnableDelayedExpansion
If Defined Line Echo !Line!
EndLocal
Set "Line=%%A"))>"%SrcFile%"
EndLocal
Exit /B
Mir fehlt wie gesagt eine for-Schleife, welche mir alle Daten einzeln einließt, die letzten 4 Zeilen löscht und die txt. wieder speichert.
Eure Hilfe wäre sehr praktisch!
Please also mark the comments that contributed to the solution of the article
Content-Key: 439455
Url: https://administrator.de/contentid/439455
Printed on: May 4, 2024 at 13:05 o'clock
4 Comments
Latest comment
@echo off
set "quelle=D:\Ordner"
powershell -Executionpolicy Bypass -NoP -C "gci '%quelle%' -Filter *.txt | %%{($f = gc $_.Fullname)[0..($f.count - 5)] | sc $_.Fullname}"
Hauptsächlich aus dem Grund da es ja so Kandidaten gibt die nicht wissen was damit anzufangen ist wenn die Zeile da nicht steht, oder sich dann beschweren das was in der Ausgabe steht was sie nicht möchten .
Im Endeffekt ist es ja eine Batch. Ob sich die Batch da nun noch mit Hilfsmittel anderer Art bedient ist doch Jacke wie Hose wenn der Jung es nicht in seine Bedingungen schreibt ....
Im Endeffekt ist es ja eine Batch. Ob sich die Batch da nun noch mit Hilfsmittel anderer Art bedient ist doch Jacke wie Hose wenn der Jung es nicht in seine Bedingungen schreibt ....