¿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 -xpará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 ambosbinfueron 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
-spfen 7z para Linux que funciona con ruta absoluta.Según Marco ,
-spftambié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'