¿Alguna idea de cómo excluir una (s) ruta (s) comodín de un comando 7zip de línea de comandos?
Estoy haciendo algo como esto:
7z.exe a -t7z archive.7z FolderToArchive\ -mx0
y quisiera excluir cualquiera \bin\*.*
o \obj\*.*
carpetas encontradas debajo de "FolderToArchive".
Para excluir archivos, puede usar el -x
parámetro. El archivo de ayuda da este ejemplo para usar -x
:
7z a -tzip archive.zip *.txt -x!temp.*
Eso es genial para excluir un archivo. Pero, nuevamente, me gustaría excluir una carpeta especificada con comodines. Bajo mi "FolderToArchive" existen varias carpetas, en esas carpetas que puede o no ser bin\
y obj\
carpetas. Me gustaría no incluirlos en el archivo.
He intentado patrones como
-x!bin\*
-x!bin\*.*
-x!\bin\*
-x!\bin\*.*
-x!\\bin\\*
-x!\\bin\\*.*
Ninguno parece excluir la bin\
carpeta. ¿Es esto simplemente una limitación de 7zip?
fuente
-xr0!*.zip
, al menos no podría hacer que funcione sin elr0
.'-x!$RECYCLE.BIN'
para excluir la papelera de reciclaje de una unidad externa.Para evitar errores, use -r o -xr con cuidado.
supongamos que tiene directorios como:
y ejecuta el comando:
lo que tienes en el archivo.7z:
Es decir, el
.\path2\
y.\path5\
se convirtió en la carpeta superior en archive.7z, y ambosbin
fueron excluidos directorios.-x solo admite ruta / nombre de archivo relativo a la carpeta superior en el archivo.
Entonces, si solo desea excluir
.\path1\path2\bin
, pero incluir todos los demás directorios 'bin', el comando debería ser así:Traté de usar la ruta absoluta en -x, pero nunca tuve éxito.
Actualizar:
Hay una opción
-spf
en 7z para Linux que funciona con ruta absoluta.Según Marco ,
-spf
también está disponible en Windows desde 7-zip 15.14fuente
'-x!path2\bin'
para no encontrarse con la sustitución de shell ... (consiguiendo un "comando" sintácticamente mucho más largo, más largo ...)'-xr!\.foo'