Haben Sie eine Idee, wie Sie Pfade mit Platzhalterzeichen von einem 7zip-Befehl in der Befehlszeile ausschließen können?
Ich mache so etwas:
7z.exe a -t7z archive.7z FolderToArchive\ -mx0
und möchte alle ausschließen \bin\*.*
oder \obj\*.*
Ordner unter „FolderToArchive“ gefunden.
Um Dateien auszuschließen, können Sie den -x
Parameter verwenden. Die Hilfedatei enthält dieses Beispiel für die Verwendung von -x
:
7z a -tzip archive.zip *.txt -x!temp.*
Das ist großartig, um eine Datei auszuschließen. Aber auch hier möchte ich einen von Platzhaltern angegebenen Ordner ausschließen. Unter meinem „FolderToArchive“ gibt es mehrere Ordner, unter diesen Ordnern kann es sein können oder nicht bin\
und obj\
Ordner. Ich möchte diese nicht in das Archiv aufnehmen.
Ich habe Muster wie ausprobiert
-x!bin\*
-x!bin\*.*
-x!\bin\*
-x!\bin\*.*
-x!\\bin\\*
-x!\\bin\\*.*
Keiner scheint den bin\
Ordner auszuschließen . Ist das einfach eine Beschränkung von 7zip?
quelle
-xr0!*.zip
- zumindest könnte ich es ohne das nicht zum Laufen bringenr0
.'-x!$RECYCLE.BIN'
um den Papierkorb eines externen Laufwerks auszuschließen.Verwenden Sie -r oder -xr vorsichtig, um Fehler zu vermeiden.
Angenommen, Sie haben Verzeichnisse wie:
und führe den Befehl aus:
was du in archive.7z hast:
Das heißt, das
.\path2\
und.\path5\
wurde der oberste Ordner in archive.7z, und beidebin
Verzeichnisse wurden ausgeschlossen.-x unterstützt nur Pfad / Dateiname relativ zum obersten Ordner im Archiv.
Wenn Sie also nur
.\path1\path2\bin
die anderen "bin" -Verzeichnisse ausschließen , aber einschließen möchten , sollte der Befehl folgendermaßen lauten:Ich habe versucht, den absoluten Pfad in -x zu verwenden, aber es gelang mir nie.
Aktualisieren:
Es gibt eine Option
-spf
in 7z für Linux, die mit absolutem Pfad arbeitet.Laut Marco gibt
-spf
es das auch unter Windows ab 7-zip 15.14quelle
'-x!path2\bin'
zu setzen, damit keine Shell-Substitution auftritt ... (Sie erhalten einen viel längeren, syntaktisch falschen „Befehl“ ...)'-xr!\.foo'