sblaesing
Goto Top

Letzte 300 Zeilen einer Textdatei per Batch einlesen und in eine andere Datei speichern

Hallo!

Ich hoffe ihr könnt mir helfen.

Ich benötige eine Batch-Datei, die eine Text-Datei öffnet, 300 Zeilen, oder 5000 Zeichen herausliest und in eine neue Datei schreibt.
Das eigentliche Problem: Es sollte vom Datei-Ende erfolgen, also die letzten 300 Zeilen bzw. die letzten 5000 Zeichen.

Ev. wäre auch ein VB-Script möglich, welches ich über eine Batch-Datei aufrufen kann.

Vielen Dank!

Grüße,
Sebastian

Content-Key: 179473

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

Printed on: April 24, 2024 at 09:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Jan 24, 2012 at 16:14:27 (UTC)
Goto Top
Das unix-kommando tail macht das:

tail -n 3000 $Dateiname
gibt Dir die letzten 3000 Zeilen der Datei $dateiname aus.

Es gibt verschiedene Portierungen für wndows. einfach nach tail.exe suchen.

lks

PS: Ich verwende für so etwas cygwin, weil da alles beisammen ist.

Nachtrag: In den Resource Kit Tools für W2K3 ist auch eine Version mit dabei. Da mußt Du dann ur so etwas wie

tail -300 Dateiname >ausgabedatei
tippen, um das gewünschte Ergebnis zu bekommen.
Member: bastla
bastla Jan 24, 2012 at 16:27:26 (UTC)
Goto Top
Hallo sblaesing und willkommen im Forum!

Per "Batch only" (ungetestet) etwa so:
@echo off & setlocal
set "Ein=D:\Datei1.txt"  
set "Aus=D:\Datei2.txt"  
set /a Anzahl=300

for /f "delims=:" %%i in ('findstr /n "^" "%Ein%"') do set "Zeilen=%%i"  
set /a Offset=%Zeilen%-%Anzahl%
if %Offset% lss 0 set /a Offset=0

>"%Aus%" more +%Offset% "%Ein%"  
Wenn es tatsächlich um Zeichen gehen sollte, wäre VBS die bessere Wahl ...

Grüße
bastla
Member: sblaesing
sblaesing Jan 25, 2012 at 08:55:22 (UTC)
Goto Top
Hallo ihr beiden!

Ich bin begeistert! Mit Antworten innerhalb von 15 Minuten hät ich überhaupt nicht gerechnet! Unglaublich!

Vielen Dank dafür.

Beide Lösungen funktionieren prima!

Ich werde jetzt anfangen zu testen.

Grüße,
Sebastian