Datei splitten jeweils nach 1000 Zeilen
Wahrscheinlich ziemlich einfach für jemanden der sich mit batch Skripten auskennt...
Problem:
Ich habe eine Datei mit > 290 000 Zeilen.
Diese würde ich gerne splitten in kleinere Dateien.
Gesplittet werden soll immer nach 1 000 Zeilen.
Die Dateinamen der entstehenden einzelnen Dateifragmente sollen durchnummmeriert werden.
Ausgangsdatei
--> erzeugte_datei_1
--> erzeugte_datei_2
[...]
Danke für eure Hilfe!
Andi
Problem:
Ich habe eine Datei mit > 290 000 Zeilen.
Diese würde ich gerne splitten in kleinere Dateien.
Gesplittet werden soll immer nach 1 000 Zeilen.
Die Dateinamen der entstehenden einzelnen Dateifragmente sollen durchnummmeriert werden.
Ausgangsdatei
--> erzeugte_datei_1
--> erzeugte_datei_2
[...]
Danke für eure Hilfe!
Andi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101120
Url: https://administrator.de/forum/datei-splitten-jeweils-nach-1000-zeilen-101120.html
Ausgedruckt am: 05.05.2025 um 04:05 Uhr
7 Kommentare
Neuester Kommentar

wie waer's hiermit (split after X bytes):
http://www.blue-series.de/products/spx/splitting_de.htm
oder mit einem von diesen:
http://www.snapfiles.com/Freeware/downloader/fwfilesplit.html
so long
plague
http://www.blue-series.de/products/spx/splitting_de.htm
oder mit einem von diesen:
http://www.snapfiles.com/Freeware/downloader/fwfilesplit.html
so long
plague
Hallo broholm und willkommen im Forum!
Wenn's aber trotzdem mit Bordmitteln sein soll, etwa so:
Hinsichtlich des Formats der Nummerierung habe ich mich an Deine Vorlage gehalten, obwohl ich eher zu einer fixen Länge tendiere und die Dateien daher "erzeugte_datei_0001", "erzeugte_datei_0002" etc benennen würde ...
Grüße
bastla
Wenn's aber trotzdem mit Bordmitteln sein soll, etwa so:
@echo off & setlocal
set /a Anzahl=1000
set /a Nr=1
set /a Z=0
for /f "delims=" %%i in (D:\Ausgangsdatei.txt) do set "Zeile=%%i" & call :ProcessLine
goto :eof
:ProcessLine
>>D:\Temp\erzeugte_datei_%Nr%.txt echo %Zeile%
set /a Z+=1
echo %Nr%_%Z%
if %Z% lss %Anzahl% goto :eof
set /a Z=0
set /a Nr+=1
goto :eof
Grüße
bastla
Hallo broholm!
Füge nach Zeile 9 ein:
und das auch analog für "<", ">" und "|".
Wenn Du mir dann allerdings noch erzählst (Beispiel hast Du ja keines geliefert - btw: ist ja immer wieder spannend, sowas im Blindflug machen zu dürfen), dass es auch Zeilen mit einzelnen Anführungszeichen gibt, ändert sich das (Bord-)Mittel der Wahl auf "VBScript" ...
Grüße
bastla
Füge nach Zeile 9 ein:
set "Zeile=%Zeile:&=^&%"
Wenn Du mir dann allerdings noch erzählst (Beispiel hast Du ja keines geliefert - btw: ist ja immer wieder spannend, sowas im Blindflug machen zu dürfen), dass es auch Zeilen mit einzelnen Anführungszeichen gibt, ändert sich das (Bord-)Mittel der Wahl auf "VBScript" ...
Grüße
bastla
Hallo broholm!
Mit den beiden dargestellten Zeilen gibt es bei mir kein Problem, es könnten aber noch irgendwelche "nicht-druckbare" Zeichen auf dem Weg von Dir zu mir auf der Strecke geblieben sein - falls Du einen Editor mit Anzeige aller Steuerzeichen oder einen Hex-Editor bei der Hand hast, könntest Du das einmal überprüfen ...
Grüße
bastla
Mit den beiden dargestellten Zeilen gibt es bei mir kein Problem, es könnten aber noch irgendwelche "nicht-druckbare" Zeichen auf dem Weg von Dir zu mir auf der Strecke geblieben sein - falls Du einen Editor mit Anzeige aller Steuerzeichen oder einen Hex-Editor bei der Hand hast, könntest Du das einmal überprüfen ...
Grüße
bastla