Double Commander

2.10. Archivierung

Inhalt

1. Mit Archiven arbeiten
2. Plugins verwenden
3. Externe Archivierer verwenden
4. Integration externer Archivierer konfigurieren
4.1. Einen neuen Archivierer hinzufügen
4.2. Variablen für Archivierer-Befehle
4.3. Modifikatoren für Variablen
4.4. Die Aktion "Liste" konfigurieren
4.5. Den Inhalt der Liste einlesen
4.5.1. Den zu analysierenden Bereich eingrenzen
4.5.2. Die Inhaltsliste parsen
4.5.3. Standard-Syntax zum Parsen
4.5.4. Beispiel für Standard-Syntax
4.5.5. Erweiterte Syntax zum Parsen
4.5.6. Beispiel für erweiterte Syntax
4.6. Die Aktion "Entpacken" konfigurieren
4.7. Die Aktion "Hinzufügen" konfigurieren
4.8. Die Aktion "Löschen" konfigurieren
4.9. Die Aktion "Testen" konfigurieren
4.10. Die Aktion "Entpacken ohne Pfade" konfigurieren
4.11. Die Aktion "Selbstentpackendes Archiv erstellen" konfigurieren
4.12. IDs konfigurieren
4.13. Fehlersuche (Debug)
4.14. Menü der Schaltfläche "Anderes"
5. Archive in verknüpften Anwendungen öffnen

1. Mit Archiven arbeiten

Double Commander kann Archive wie einfache Ordner behandeln.

Wenn wir beispielsweise eine ZIP-Datei in einem Panel haben, können wir sie einfach auswählen und Enter drücken. Das Panel zeigt dann den Inhalt der ZIP-Datei an, genau als hätten wir in ein Verzeichnis gewechselt.

Double Commander ist sehr flexibel und kann externe Programme über seine eigene Schnittstelle zur Bearbeitung von Archiven nutzen. Es gibt zwei verschiedene Prinzipien zur Handhabung von Archiven:

Wenn wir versuchen, ein Archiv zu öffnen, prüft Double Commander zuerst die Liste der verfügbaren Packer-Plugins.

Einmal innerhalb eines Archivs, können wir Basisfunktionen wie das Betrachten von Dateien, das Kopieren in ein anderes Panel und einige eingeschränkte Funktionen ausführen.

Das folgende Bild zeigt ein Beispiel: Wir haben das Archiv "help.rar" ausgewählt und Enter gedrückt, genau wie bei einem Ordner:

Archiv ansehen

Beim Aufruf der Befehle Betrachten (F3) oder Bearbeiten (F4) entpackt Double Commander die Datei unter dem Cursor in das Systemverzeichnis für temporäre Dateien und öffnet sie. Nach dem Schließen des Betrachters wird die temporäre Datei gelöscht. Wenn eine im Editor geöffnete Datei geändert wurde, bietet Double Commander das erneute Packen an (sofern das Archivformat und das Packer-Plugin oder der externe Archivierer dies unterstützen).

Bei einem Doppelklick oder Drücken von Enter zeigt Double Commander das Eigenschaftenfenster der gepackten Datei an:

Eigenschaften einer gepackten Datei

Die Zeile Packer zeigt den Namen des verwendeten Packer-Plugins oder des externen Archivierers an.

Schaltflächen:

Double Commander ermöglicht es, Dateien in verknüpften Programmen automatisch zu öffnen, indem die Einstellung <AutoExtractOpenMask> verwendet wird.

Beim Beenden löscht Double Commander alle temporären Dateien.

2. Verwendung von Plugins

Wir können Double Commander so konfigurieren, dass externe "Packer-Plugins" zur Bearbeitung von Archiven verwendet werden.

Ab der Installation enthält Double Commander bereits einige dieser .WCX-Plugins.

Zusätzlich gibt es viele weitere Plugins im Internet. Sie können nach .WCX-Plugins suchen.

Beachten Sie auch, dass Plugins, die für Total Commander erstellt wurden, im Grunde auch in Double Commander funktionieren.


Um diese zu installieren, zu aktivieren oder zu konfigurieren, besuchen Sie Konfiguration > Optionen... > Plugins > Plugins WCX:

Konfiguration > Plugins WCX

Bitte beachten Sie, dass einige Formate nur lesend unterstützt werden, d. h. man kann nur den Inhalt ansehen, entpacken und testen.

3. Verwendung externer Archivierer

Manchmal gibt es kein Plugin für einen bestimmten Archivtyp.

Oder man möchte aus bestimmten Gründen einen externen Packer verwenden, um Funktionen zu nutzen, die das Plugin nicht bietet.

Double Commander nutzt zur Einbindung externer Archivierer ein Prinzip, das dem MultiArc-Plugin von Total Commander ähnelt.

Kurz gesagt: Die Verwendung eines externen Archivierers ist eine Methode, ein bekanntes Archivierungsprogramm zu starten, aber gesteuert durch Double Commander. Man übergibt dem Programm verschiedene Parameter, sodass es sich anfühlt, als wäre es in die Anwendung integriert.

Der Rest dieser Seite befasst sich mit der Frage, wie man Double Commander konfiguriert, um einen externen Archivierer für die gewünschten Aktionen zu starten.

Angenommen, wir möchten "rar.exe" für .rar-Archive verwenden.

Wie man sich denken kann, besteht die Basis darin, den Aufruf des externen Archivierers zu konfigurieren, um...

Dies geschieht in den Einstellungen unter Archivierer, wie im Bild unten gezeigt:

Konfiguration > Archivierer

Alle Einstellungen werden in der Datei multiarc.ini gespeichert.

In den folgenden Abschnitten sehen wir uns die Möglichkeiten an, die Double Commander zur korrekten Integration externer Packer bietet.

4. Integration externer Archivierer konfigurieren

Wir werden hier nicht jedes Feld beschreiben, da dies beim Ausprobieren intuitiv ist. Stattdessen beschreiben wir ein detailliertes Integrationsbeispiel.

Wir zeigen die Integration des Archivierers "rar.exe". Ein vollständiges Schritt-für-Schritt-Beispiel ist am besten geeignet.

4.1. Einen neuen Archivierer hinzufügen

Wir klicken unten auf "Hinzufügen", geben dem Archivierer einen sinnvollen Namen und können ihn dann konfigurieren.

Neuen Archivierer hinzufügen


Dann geben wir eine Beschreibung ein, legen den genauen Speicherort der Programmdatei fest und geben die zugehörigen Dateierweiterungen an (ohne Punkt).

Bei mehreren Erweiterungen trennen wir diese durch ein Komma ohne Leerzeichen.

Neuen Archivierer hinzufügen

Hinweis: Double Commander unterstützt doppelte Erweiterungen (z. B. "tar.gz", "tar.xz" usw.). Diese müssen am Anfang der Liste stehen (d. h. "tar.gz" vor "gz").

4.2. Variablen für Archivierer-Befehle

Wie erwähnt, müssen wir festlegen, wie das Archivierungsprogramm aufgerufen werden soll.

Hierzu stellt Double Commander spezielle Variablen zur Verfügung, die in den Befehlszeilen verwendet werden können.

Die folgende Tabelle zeigt die verfügbaren Variablen und deren Bedeutung:

Befehlsdefinitionen
VariableBedeutung
%P
Langer Name des Archivierers (wie im Feld "Archivierer" angegeben)
%p
Kurzer Name des Archivierers
%A
Langer Name des Archivs
%a
Kurzer Name des Archivs
%L
Dateiliste. Eine temporäre Datei, die die Namen der zu bearbeitenden Dateien enthält. Lange Dateinamen.
%l
Dateiliste mit kurzen Dateinamen
%F
Name einer einzelnen zu bearbeitenden Datei. Der Archivierer wird mehrfach aufgerufen, bis alle Dateien verarbeitet sind. Nur verwenden, wenn der Archivierer keine Dateilisten unterstützt.
%V
Volumengröße (für Archive über mehrere Datenträger)
%W
Passwort
%E<errorlevel>
Maximal akzeptabler Fehlercode (Errorlevel). Beispiel: %E2 bedeutet, dass 0, 1 und 2 als Erfolg gelten. Ohne diese Variable wird nur 0 als Erfolg gewertet.
%O<modifier>
Standardmäßig konvertiert DC die Ausgabe des Archivierers von OEM nach UTF-8. Hiermit kann die Kodierung überschrieben werden (nur für die Aktion "Liste").
%R
Ziel-Unterverzeichnis im Archiv
{}
Variablen in geschweiften Klammern werden nur hinzugefügt, wenn die Variable einen Wert enthält.
%S
Platzhalter für zusätzliche Kommandozeilenparameter aus dem Packen-Dialog.

Die Beispiele weiter unten machen die Verwendung deutlicher.

4.3. Modifikatoren für Variablen

Diese Modifikatoren können direkt ohne Leerzeichen hinter eine Variable gesetzt werden.

Variablen-Modifikatoren
ModifikatorBedeutung
F
Nur Dateien in die Dateiliste aufnehmen (für %L und %l).
Q
Namen mit Leerzeichen in Anführungszeichen setzen.
q
Alle Namen in Anführungszeichen setzen.
W
Nur Namen verwenden, ohne Pfad.
P
Nur den Pfad verwenden, ohne Dateiname.
A
System-ANSI-Kodierung (Windows) oder Standard-Kodierung (Unix) verwenden; für %L und %O.
U
UTF-8 Kodierung verwenden; für %L und %O.

4.4. Die Aktion "Liste" konfigurieren

Damit Double Commander ein Archiv wie einen Ordner behandeln kann, muss es die Liste der darin enthaltenen Dateien abrufen können.

Hierbei wird noch nichts entpackt! Es geht nur darum, den Inhalt aufzulisten, damit DC ihn anzeigen kann.

In unserem "rar.exe" Beispiel wissen wir aus der Dokumentation, dass der Befehl "v" (view) die Dateiliste ausgibt:

rar.exe: Startoptionen


Um die Inhaltsliste zu erhalten, müssen wir also "rar.exe" mit dem Befehl "v" und dem Archivnamen aufrufen.

Testen wir das manuell in der Konsole für die Datei "E:\Temp\just.rar":

rar.exe: Dateiliste im Terminal abrufen


Nun konfigurieren wir die Aktion "Liste" in Double Commander, um genau diesen Aufruf zu automatisieren.

Wir verwenden dazu die oben beschriebenen Variablen:

Aktion: Liste

Wir schreiben %P v %AQ.

Diese Funktion wird beim internen Befehl cm_OpenArchive genutzt.

Hinweis zur Option "Archivname ohne Erweiterung als Liste": Dies ist für Formate wie Bzip2 oder XZ gedacht, die nur eine Datei enthalten können und deren Name dem Archivnamen ohne Endung entspricht.

4.5. Den Inhalt der Liste einlesen

Bisher haben wir nur dafür gesorgt, dass der Archivierer die Liste ausgibt.

Das reicht aber nicht aus. Wir müssen diese Ausgabe nun einlesen und im Panel anzeigen lassen.

Double Commander muss also die vom Programm ausgegebene Tabelle interpretieren können.

4.5.1. Den zu analysierenden Bereich eingrenzen

Wie im Screenshot oben zu sehen, gibt "rar.exe" nicht nur die reinen Dateidaten aus.

Es gibt Kopf- und Fußzeilen, die wir ignorieren müssen, um nur die eigentliche Liste zu parsen.

Wir können eine Zeichenfolge (Magic String) festlegen, auf die DC wartet, bevor es mit dem Parsen beginnt, und ebenso eine Zeichenfolge zum Beenden des Parsens.

Da in der RAR-Ausgabe Trennlinien aus Strichen vorhanden sind, nutzen wir diese:

Aktion: Liste Start/Ende

Wenn das Programm sofort die reinen Daten ausgibt, lassen wir diese Felder leer.

Das Zeichen "^" bedeutet, dass die Zeichenfolge exakt am Zeilenanfang stehen muss. Ohne dieses Zeichen kann sie irgendwo in der Zeile vorkommen.

4.5.2. Die Inhaltsliste parsen

Nun weiß Double Commander, welche Zeilen analysiert werden sollen.

Anstatt eine feste Routine für RAR-Ausgaben zu verwenden, bietet DC die maximale Flexibilität, indem wir das Format der Zeilen selbst beschreiben können.

Das ermöglicht es, auch Archivierungsprogramme einzubinden, die den Entwicklern von DC gar nicht bekannt sind.

Hierzu verwenden wir Platzhalter-Buchstaben für die verschiedenen Felder der Ausgabezeile.

4.5.3. Standard-Syntax zum Parsen

Die folgende Tabelle zeigt die "Standard-Syntax" für das Parsen der Inhaltsliste.

Diese Syntax basiert auf einer direkten Zeichen-zu-Zeichen-Ersetzung und ist schneller als die "erweiterte Syntax".

Standard-Syntax zum Parsen
ZeichenBedeutung
n
Dateiname
z
Ungepackte Größe
c
Dateikommentar
p
Gepackte Größe
d
Tag
t
Monat
TTT
Dreibuchstabiger Monatsname (Jan, Feb, ...)
y
Jahr
h
Stunde
H
Stundenmodifikator (a – AM, p – PM)
m
Minute
s
Sekunde
a
Attribute
e
Dateierweiterung
?
Ein Zeichen überspringen
*
Bis zum ersten Leerzeichen oder Zeilenende überspringen
+
Für das Namensfeld am Zeilenende: Alle restlichen Zeichen verwenden.

Wenn ein Archivierer mehrere Zeilen pro Datei nutzt, können entsprechend viele Zeilen zum Parsen angegeben werden (bis zu 50).

4.5.4. Beispiel für Standard-Syntax

Wir erstellen nun einen "Listenformat"-String, der Double Commander sagt, wo in der Zeile Name, Größe, Datum usw. zu finden sind.

Am besten schreibt man sich die Ausgabezeile des Programms in einen Editor und platziert die Platzhalter direkt darunter.

Beispiel:

Listenformat: Beispiel Standard-Syntax

Wir setzen die Buchstaben exakt an die Stellen, an denen die Informationen stehen:

Die 4 Leerzeichen am Anfang werden mit "????" übersprungen.

Das Ergebnis im Panel zeigt, dass dies im Prinzip funktioniert (bis auf die letzte Datei im Beispiel...):

Archiv ansehen: Beispiel Standard-Syntax

4.5.5. Erweiterte Syntax zum Parsen

Die "erweiterte Syntax" wird genutzt, wenn die Spaltenbreiten in der Ausgabe variieren (z. B. bei sehr großen Dateien).

Diese Platzhalter benötigen etwas mehr Rechenzeit und sollten nur verwendet werden, wenn die Standard-Syntax versagt.

Erweiterte Syntax zum Parsen
ZeichenBedeutung
+
Für Namen (nicht am Zeilenende): Alle Zeichen bis zum nächsten Leerzeichen verwenden.
+
Nach Zahlenfeldern: Alle Ziffern bis zum ersten Nicht-Ziffer-Zeichen verwenden.
n+
Alle Zeichen bis zum Zeilenende als Dateiname verwenden.
z+
Alle Ziffern als ungepackte Größe verwenden.
p+
Alle Ziffern als gepackte Größe verwenden.
$
Alle Leerzeichen/Tabs bis zum nächsten Zeichen oder Zeilenende überspringen.
\
Daten setzen sich in der nächsten Zeile fort (max. 2 Zeilen).
x
Exakt ein Leerzeichen; falls dort ein anderes Zeichen steht, wird die Zeile ignoriert.
z=1024
Größe mit dem angegebenen Wert multiplizieren (hier: 1024).

4.5.6. Beispiel für erweiterte Syntax

Im obigen Beispiel gab es Probleme mit der Datei 007 Skyfall.TS, da ihre Größe die Spalte sprengte.

Die Informationen für Name, Größe usw. waren daher falsch eingelesen:

Archiv ansehen: Falsche Informationen

Mit der "erweiterten Syntax" lösen wir dieses Problem, indem wir flexiblere Platzhalter nutzen:

Listenformat

Hier die farbliche Visualisierung, wie die Zeile nun zerlegt wird:

Listenformat: Beispiel erweiterte Syntax

Damit wird das Ergebnis auch bei sehr großen Dateien korrekt:

Archiv ansehen: Beispiel erweiterte Syntax

4.6. Die Aktion "Entpacken" konfigurieren

Hier legen wir fest, wie der Archivierer aufgerufen wird, um Dateien aus einem Archiv zu entpacken.

Für "rar.exe" nutzen wir den Befehl "x" (extract with full paths).

Da wir oft mehrere Dateien gleichzeitig entpacken wollen, nutzen wir die Variable %L. DC erstellt dann eine temporäre Textdatei mit allen ausgewählten Dateinamen und übergibt diese an RAR.

Befehlszeile für RAR:

Aktion: Entpacken

Erklärung:

Diese Aktion wird auch im Hintergrund genutzt, wenn man eine Datei im Archiv mit F3 betrachtet.

Genutzt durch den internen Befehl cm_ExtractFiles.

4.7. Die Aktion "Hinzufügen" konfigurieren

Hier wird konfiguriert, wie Dateien zu einem Archiv hinzugefügt werden (Befehl "a" bei RAR).

Befehlszeile für RAR:

Aktion: Hinzufügen

Erklärung:

Genutzt durch den internen Befehl cm_PackFiles.

4.8. Die Aktion "Löschen" konfigurieren

Ermöglicht das Löschen von Dateien innerhalb eines Archivs (falls vom Format unterstützt).

Für RAR nutzen wir den Befehl "d" (delete):

Aktion: Löschen

Erklärung:

4.9. Die Aktion "Testen" konfigurieren

Überprüft die Integrität eines Archivs (Befehl "t" bei RAR).

Aktion: Testen

Genutzt durch den internen Befehl cm_TestArchive.

Sind keine Fehler vorhanden, schließt sich das Fenster automatisch. Andernfalls erscheint eine Fehlermeldung:

Archiv testen: Fehlermeldung

4.10. Die Aktion "Entpacken ohne Pfade" konfigurieren

Einige Archivierer erlauben es, alle Dateien in einen einzigen Zielordner zu entpacken, ohne die im Archiv gespeicherte Ordnerstruktur wiederherzustellen.

Bei RAR wird hierfür der Befehl "e" statt "x" verwendet:

Aktion: Entpacken ohne Pfade

Diese Option ist im Entpacken-Dialog sichtbar:

Gespeicherte Pfadnamen beim Entpacken

4.11. Die Aktion "Selbstentpackendes Archiv erstellen" konfigurieren

Erstellt eine ausführbare Datei (.exe), die ihren Inhalt beim Start selbst entpackt.

Bei RAR fügen wir den Parameter "-sfx" zum Hinzufügen-Befehl hinzu:

Aktion: Selbstentpackendes Archiv erstellen

Die Option wird im Packen-Dialog aktiviert:

Selbstentpackendes Archiv erstellen

4.12. IDs konfigurieren

Man kann Double Commander anweisen, Archive nicht nur anhand ihrer Dateiendung zu erkennen, sondern auch anhand ihres Inhalts (Signatur oder "Magic Number").

Das ist nützlich, um z. B. .exe-Dateien (selbstentpackende Archive) oder .docx-Dateien (eigentlich ZIP-Archive) wie Ordner zu öffnen.

Hierfür definieren wir eine ID (Byte-Folge) und deren Position in der Datei.

Beispiel für ein 7-Zip-Archiv:

Beispiel 7-Zip Datei

Die ersten sechs Bytes lauten immer 0x37 0x7A 0xBC 0xAF 0x27 0x1C. Wir konfigurieren DC so, dass es Dateien mit dieser Signatur als 7-Zip erkennt:

7-Zip ID

Die ID wird als Hexadezimal-Werte (getrennt durch Leerzeichen) eingegeben.

ID-Position: Der Versatz (Offset) vom Dateianfang (oder vom Ende, wenn ein "-" vorangestellt ist).

Informationen zu Signaturen findet man oft online, z. B. in der Wikipedia-Liste der Dateisignaturen.

4.13. Fehlersuche (Debug)

Falls die Integration nicht auf Anhieb funktioniert, helfen folgende Optionen:

4.14. Menü der Schaltfläche "Anderes"

Dieses Menü bietet zusätzliche Verwaltungsfunktionen:

5. Archive in verknüpften Anwendungen öffnen

Standardmäßig werden Dateien mit bekannten Archiv-Endungen als Ordner geöffnet. Möchte man sie stattdessen im System-Standardprogramm öffnen (z. B. WinRAR selbst), nutzt man das Kontextmenü ("Öffnen") oder fügt eine entsprechende Aktion in das "Aktion"-Menü ein.

Um Archive immer per Doppelklick als Datei zu öffnen (und nicht als Ordner):

In diesen Fällen zeigt DC auch das normale Programmsymbol anstelle des Archivsymbols an.


Gültiges HTML 4.0 Transitional CSS gültig!