viprex
Goto Top

Datei aus Zip extrahieren, Inhalt konkatenieren

Folgende Problemstellung:

Es liegen Tausende Zip Dateien vor mit unterschiedlichem Namen (Datum). In den Zip Dateien ist eine Ordnerstruktur enthalten, die immer gleich ist. In einem Unterordner befindet sich eine Datei. In dieser Datei sind, getrennt durch Tab, einige Spalte und Zeilen vorhanden. Manchmal ist diese Datei auch nicht vorhanden!

Ziel: Alle Dokumente hintereinander weg aneinander reihen. Das Zieldokument soll also den Inhalt der entsprechenden Dateien beinhalten, wenn es geht weiterhin korrekt formatiert.

Hat jemand eine Idee, wie ich das automatisiert lösen kann? Ich kann ein bisschen Java und ein bisschen CMD-Batch. Gerne auch fertige Lösungen, die ich mir dann zusammenstückeln muss.

Edit: Sorry, ein paar mehr Infos: Betriebssystem: Eigentlich Windows XP, kann aber Linux sein (da kenne ich mich weniger gut aus). Tools: Egal, ich kann alles nutzen und installieren. Wenn es nicht zu teuer ist, kaufe ich auch gerne etwas.
Die enthaltene Ordnerstruktur:

-Backup_20090319_030323.zip
-- Ordner "S2"
-- Ordner "S3"
-- Ordner "S5"
-- Ordner "S7"
-- Ordner "S10"
--- Datei "S10.fal"
-- Ordner "S12"
-- Ordner "S14"

Inhalt Datei ungefähr so:
53380056 2009-06-26 895332202 1 0 4 0 522052 EUR 0 DE 0
Und weitere dieser Zeilen, immer verschieden viele.

Content-ID: 119151

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

Ausgedruckt am: 14.11.2024 um 23:11 Uhr

empreality
empreality 26.06.2009 um 14:26:26 Uhr
Goto Top
Das sollte mit AutoIT vernünftig und schnell zu lösen sein.

Neben AutoIT selbst musst du dir dann noch einen Kommandozeilen-Entpacker wie PKUNZIP besorgen und dann

- Ergebnisdatei im Append-Modus öffnen
- Liste aller ZIPs in ein Array und dieses dann durchlaufen
- ZIP in temporären Pfad entpacken und Datei im Lesemodus öffnen
- Inhalt in Ergebnisdatei schreiben
- temporären Kram löschen
- Ergebnisdatei schließen
77559
77559 26.06.2009 um 16:08:11 Uhr
Goto Top
Hallo Viprex.

Ist die gesuchte Datei immer im Ordner S10 mit Namen S10.fal ?
Oder welche Kriterien beschreiben die Datei?

Grundsätzlich eignet sich jeder Entpacker ob jetzt Winzip cmdline, 7zip, infozip etc. oder nit vbscript gehts ggfs auch nativ.

Meine Favoriten wären
Batch for schleife über alle 'dir *zip ' und mit
"7z.exe e Archiv.zip s10.fal" dateien extrahieren und an das Sammeldokument anhängen.

Ein grundsätzliches Problem sehe ich nicht.

Gruß
LotPings
Viprex
Viprex 07.07.2009 um 10:06:05 Uhr
Goto Top
Herzlichen Dank für die Ratschläge und sorry für die späte Antwort. Hatte in der Zwischenzeit anderes zu tun.

Hier die Lösung, wie ich es jetzt gemacht habe. Funktioniert problemlos.

@echo off&setlocal 
@echo off&setlocal 
for /F "delims=" %%A in ('dir /s/b *.zip') do call :extract "%%~fA"   
GOTO :EOF

:extract 
"C:\Programme\7-Zip\7z.exe" e %1 "s10\s10.fal"  
type s10.fal >> s10_all.csv
del s10.fal
GOTO :EOF

Nochmal herzlichen Dank!