lwentz
Goto Top

BATCH: Textdatei ab einer bestimmten Zeile kopieren

Hallo,

ich habe folgende Anforderung: Ich möchte ein Log-File (Textdatei mit einem Eintrag pro Zeile) in ein neues Log-File kopieren wobei nur die letzten 100 Einträge in der neuen Datei stehen sollen.

Beispiel:

LOG.TXT

Eintrag 1
Eintrag 2
:
:
:
Eintrag 1234

LOG_NEU.TXT

Eintrag 1134
Eintrag 1135
:
:
:
Eintrag 1234

Hat mir da jemand eine Lösung?

Danke

Content-Key: 246495

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

Ausgedruckt am: 19.03.2024 um 03:03 Uhr

Mitglied: colinardo
Lösung colinardo 14.08.2014 aktualisiert um 14:04:05 Uhr
Goto Top
Hallo lwentz, Willkommen auf Administrator.de!
Eine mögliche Variante sähe so aus:
@echo off & setlocal
set "dateiIN=C:\temp\LOG.txt"  
set "dateiOUT=C:\temp\LOG_NEU.txt"  
set /a numlastows=100
for /f "tokens=1,1 delims=:" %%a in ('findstr /rn "^" "%dateiIN%"') DO set /a skip=%%a-%numlastows%  
more /e +%skip% "%dateiIN%">"%dateiOUT%"  
Grüße Uwe
Mitglied: Gersen
Lösung Gersen 14.08.2014 aktualisiert um 14:04:06 Uhr
Goto Top
Hallo,

versuch mal:

@echo off
set /A "zeilen=0"
for /f %%i in (LOG.TXT) do set /A "zeilen+=1"
set /A "zeilen-=100"
for /f "delims= skip=%zeilen%" %%i in (LOG.TXT) do (echo %%i >> LOG_NEU.TXT)

Gruß,
Gersen
Mitglied: lwentz
lwentz 14.08.2014 um 14:03:53 Uhr
Goto Top
Hallo Leute,

viele Dank für die schnelle Lösung. Beide funktionieren wunderbar face-smile

Vielen Dank