Große bis riesige Dateien einfach splitten und wieder zusammenführen

Das Tool ist zwar nun auch schon etwas älter, aber immer noch ein Post wert - ich habs grad rauskramen müssen ;).

Vor Jahren stand ich (schon mal) vor dem Problem, eine (für damalige Zeit riesige) Datei mit 50GB aufzusplitten und wieder zusammenzusetzen. Mit allen Tools die mir zur Verfügung standen, wollte es jedoch nicht so recht funktionieren (Fehler, Systemstillstand, bis hin zum Blue Screen). Nur zum Trotz (*g*) hab ich dann eine Lösung in VBScript (ja, VBS) geschrieben - und es stellte sich heraus, dass diese Lösung auch noch sehr stabil mit sehr großen Dateien funktionierte (man sagt dem WSH und VBScript nicht gerade hinterher, besonders gut mit Dateien umgehen zu können, aber so schlimm kanns nicht sein).

In der Datei ksSplitFile.zip sind 2 WSH-Scripte enthalten - ksSplitFile.wsf und ksJoinFile.wsf. Der Aufruf ist genauso einfach wie die Scripte und mindestens genauso selbsterklärend wie deren Namen selbst.

Aufteilen einer Datei

ksSplitFile.wsf trennt eine beliebige Datei in kleinere Brocken. Wie groß diese Brocken sind, kann festgelegt werden - voreingestellt sind 15 MB.

1
2
3
4
# filename : Pfad zur Datei
# chunksize : die Größe der Brocken in MB
ksSplitFile.wsf "filename" [chunksize=15]

Sieht man vom Auslesen ab, bleibt die Originaldatei unangetastet ;). Die Einzelteile werden in einen Unterordner CHUNKED_ + Namen im gleichen Verzeichnis abgelegt - liegt die zu splittende Datei SplitTest.txt auf dem Desktop, so wird dort auch ein neuer Ordner mit dem Namen CHUNKED_SplitTest.txt angelegt. Ist ein solcher Ordner bereits vorhanden, wird zusätzlich noch eine Zahl hinten angehängt.

Die Größe der Einzelteile hab ich übrigens auf 100MB begrenzt. Die Obergrenze ist mehr oder weniger willkürlich dazugekommen (zwischen 15 und 100 MB wars einfach am “schönsten“ - zumindest aus damaliger Perfromance-Sicht). Unter 15 MB lohnt es sich meiner Meinung nach nicht (aber es steht natürlich jedem offen, dies zu ändern).

Zusammenführen zu einer Datei

Zurück geht es ähnlich einfach. Mit der Datei ksJoinFile.wsf werden die Einzelteile wieder zu einem großen Ganzen zusammengefügt.

1
2
3
# path : Pfad zum CHUNKED_ - Ordner
ksJoinFile.wsf "path"

Die hierbei erstellte Datei heißt so, wie der Ordner. Gibt es eine solche Datei bereits, wird wieder eine Zahl hinten angehängt.

100 GB brauchen natürlich ihre Zeit, aber es geht (dann würde ich allerdings die “Brocken” größer als 15 MB halten) ;) Ob es eine Obergenze gibt, und wann diese dann erreicht wäre - ich weiß es nicht ;) Eventuell berichtet es mir einer…

Download ksSplitFile.zip