max11880
Goto Top

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:

@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!

Content-Key: 439455

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

Printed on: April 19, 2024 at 11:04 o'clock

Mitglied: 139374
139374 Apr 11, 2019 updated at 11:51:52 (UTC)
Goto Top
@echo off
set "quelle=D:\Ordner"  
powershell -Executionpolicy Bypass -NoP -C "gci '%quelle%' -Filter *.txt | %%{($f = gc $_.Fullname)[0..($f.count - 5)] | sc $_.Fullname}"  
Member: max11880
max11880 Apr 11, 2019 at 14:04:26 (UTC)
Goto Top
Funktioniert einwandfrei! Dankeschön!
Member: Kraemer
Kraemer Apr 11, 2019 at 14:44:13 (UTC)
Goto Top
Zitat von @139374:

> @echo off
den setzt du doch auch nur darein, um behaupten zu können, das wäre Batch oder? face-wink
Mitglied: 139374
139374 Apr 11, 2019 updated at 14:58:47 (UTC)
Goto Top
Zitat von @Kraemer:
den setzt du doch auch nur darein, um behaupten zu können, das wäre Batch oder? face-wink
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 face-smile.
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 face-big-smile ....