Rar-Archive - Bestimmte Ordner durchsuchen und Inhalt ausgeben

cl4ym4n

New member
Sers,

Ich bin auf der Suche nach einer Lösung für folgendes Problem:

Ich habe einen Ordner mit mit rund ~500 Archiven im pk3-Format (*.pk3 ist im Prinzip nichts anderes, als *.rar, nur eben umbenannt^^).

Diese Dateien sind Maps/Levels für einen Gameserver.
In diesen Archiven ist eine Ordnerstruktur vorgegeben, die ungefähr so aussieht:

Code:
abc.pk3
|_ maps
|  |_abc.def
|_ scripts
   |_script.src

Was ich genau damit vorhabe oder wofür ich das brauche, ist denk ich, für euch uninteressant und langweilig, daher spar ich mir das an dieser Stelle auch mal...

Was ich jetzt aber genau suche, ist ein Tool, mit dem ich sämtliche *.pk3-Dateien durchforsten, in jeder *.pk3 in einen bestimmten Ordner wechseln und mir die, darin enthaltenen, Dateien ausgeben lassen kann...

Im obigen Beispiel würde ich also gerne bspw. immer in den Ordner maps/ wechseln und mir dort aus jeder *.pk3 den Inhalt rausholen, der mit *.def endet - oder meinetwegen auch den kompletten Ordnerinhalt.

Ich hab bei WinRAR schon mit der integrierten Bericht-Funktion rumgespielt, allerdings kann ich die ausgegebenen Informationen bei rund 500 Archiven und mehreren 10.000 Dateien in allen Ordnern so ohne Weiteres nicht weiterverarbeiten...

Die eingebaute Suche würde mir, wenn ich nach '*.def' suche, genau das Ergebnis liefern, das ich zur Weiterverarbeitung bräuchte, dummerweise lässt sich da aber nichts aus den Suchergebnissen als Textdatei exportieren... >_<

Daher nun meine Frage, ob ihr vllt. eine Lösung für mein Problem wisst, oder ob es da vllt. Möglichkeiten gibt, Winrar über irgendwelche Consolenbefehle so arbeiten zu lassen, wie ich es brauche...?

Thx in advance.
 
Erstmal: Nein, pk3 ist i.d.R. nicht RAR, sondern ZIP nur umbenannt.

Mit dem Linux "unzip" für die Kommandozeile, kann man das ganz einfach machen:
Code:
# Entpackt alle maps/*.def Dateien eines Archivs nach STDOUT also auf den Bildschirm
# Vermutlich ist es angebracht das mit | oder > umzuleiten
unzip -c /home/foo/bar.pk3 maps/*.def

# Entpackt alle maps/*.def Dateien aller Archive in diesem Verzeichnis nach STDOUT und gibt vorher noch den Dateinamen aus:
unzip -v -c *.pk3 maps/*.def

# Rekursiv und Ergebnis in Textdatei umgeleitet:
find /home/foo/ -type f -iname '*.pk3' -exec unzip -v -c {} maps/*.def \; > datei.txt

Falls Du kein Linux mit unzip (LiveCD?) zur Verfügung hast, dann kannst Du vielleicht immernoch für das vorhandene Betriebssystem ein Kommandozeilen-ZIP besorgen und es damit versuchen.

Viel Glück.
 

Online-Statistiken

Zurzeit aktive Mitglieder
2
Zurzeit aktive Gäste
45
Besucher gesamt
47

Beliebte Forum-Themen

Zurück
Oben Unten