Wie behalte ich die Ordnerintegrität beim Komprimieren von Dateien in verschiedenen Ordnern bei?

Wie behalte ich die Ordnerintegrität beim Komprimieren von Dateien in verschiedenen Ordnern bei?

Ich habe eine Batchdatei, die jeden Tag auf unseren dedizierten Servern ausgeführt wird und die Dateien komprimiert.

Hier ist ein Ausschnitt aus der Batchdatei:

%SUBDIR%7z a -tzip %fullname%  %datapath%\*.txt >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname%  %datapath%\spoolq.q >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname%  %datapath%\vblib\shared\settings.cfg >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname%  %datapath%\sssusers.d >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname%  %datapath%\#library\*prt.cfg >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname%  %datapath%\#library\printer.txt >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname%  %datapath%\#library\netuse.text >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname%  %datapath%\*.cfg >>%LOGFILE%

Die Batchdatei ruft die gewünschten Dateien ab, sie befinden sich jedoch alle im selben Verzeichnis und nicht in ihren ursprünglichen Verzeichnissen.

Ich habe es 7z x filename.zipbeim Extrahieren der Dateien versucht, aber das hat zu keinem anderen Ergebnis geführt.

Muss ich beim Komprimieren einen Schalter angeben?

Danke für die Hilfe!

bearbeiten

Mir ist gerade aufgefallen, dass ich 7z anweise, die Datei so, wie sie ist, in das Archiv zu legen. Das ist mir jetzt klar, daher lautet meine Frage eigentlich: Gibt es eine Möglichkeit, die ursprüngliche Ordnerstruktur beim Komprimieren der Dateien beizubehalten?

Antwort1

Es ist ziemlich schwach, aber Sie müssen relative Pfade ohne Laufwerk oder führenden Backslash verwenden.
In Ihrem Beispiel %datapath%muss "users\johnny\filespec"anstelle von haben "c:\users\filespec".

Cd \
7z a –tzip myzip.zip users\johnny\tmp\tmp2\TMP2.TXT

Speichert die Ordnerstruktur.

Anschließend können Sie es aus demselben Ordner, in dem Sie es komprimiert haben, mit ... entpacken.

7z x myzip.zip

und 7z stellt die Ordnerstruktur wieder her.

Beachten Sie, dass Sie die Dateien aus demselben Ordner entpacken müssen, aus dem Sie sie komprimiert haben, da die Ordner an Ihrem aktuellen Speicherort erstellt werden.

verwandte Informationen