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.zip
beim 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.