You are on page 1of 3

@echo off

:: URL: http://en.wikibooks.org/wiki/Windows_Programming/Programming_CMD
:: Variables

SET zip_path="C:\Program Files\7-Zip\7z.exe"


SET base_folder="C:\carpeta-de-origen\*.*"
SET out_folder=D:\carpeta-de-destino\
SET zip_name=copia-seguridad.zip

::echo %zip_path%

:: Programa
IF EXIST %out_folder% (
CLS
SET passw=
echo.
echo.Iniciamos el proceso de copia.
del %out_folder%%zip_name%
%zip_path% a -tzip -scsDOS -p%passw% %out_folder%%zip_name% -r
%base_folder%
echo.Proceso finalizado.
set passw=
pause
) ELSE (
echo.ERROR: "No se encuentra la carpeta de destino, detenemos el
proceso."
)
ECHO ON
Para excluir todos los directorios .svn necesita agregar el -xr!?svn\*
Por ejemplo, lo siguiente creará una copia de seguridad del
directorio C:\Project\To\Backup excluyendo las carpetas que satisfagan ?svn :

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project


\To\Backup\*

En lugar de usar 7-Zip para excluir las carpetas .svn (o potencialmente _svn), recomendaría
usar el comando svn export (use svn.exe de SlikSVN ) para exportar la copia de trabajo a una
carpeta temporal:

svn export C:\Path\To\WC C:\Backup\Staging

A continuación, utilice 7-Zip de la siguiente manera:

7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r

A continuación, elimine la carpeta de ensayo.


Esto es lo que hago para hacer copias de seguridad de mis copias locales de trabajo.
Puede excluir archivos con 7zip utilizando una lista de archivos o directorios:

/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \ '-xr@\path\t


o\backup_daily_exclude.lst'

El archivo de exclusión tiene el siguiente aspecto:

home\Photos\iPod* home\dhltd\* BlogMatrix\Sparks\db\*.archive home\eclipse\* .s


vn

La clave es el -xr y en particular el "r" que indica aplicar la lista de exclusión recursivamente, a
cada nivel del directorio. Es posible que desee utilizar 2 listas de archivos de exclusión uno
para absoluto y uno para exclusiones recursivas. Lo anterior es de un script bash que se
ejecuta en cygwin.
Cuando usé

"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\* aufs2-util.tar aufs2-util


\*

Terminó agregando el directorio .git que no quería, cambiándolo a

"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\


*

Obtuvo el resultado deseado.


Cuando usé
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!WEB-INF\*

No se excluyó el directorio WEB-INF. Adición de un asterisco antes del nombre del


directorio

7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\


*

Consiguió el resultado deseado.


Para mí, estaba tratando de copias de seguridad de un montón de directorios de código de
maven y quería excluir cualquier directorio llamado "target":

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!*\target\* site.zip C:\code\s


ite\

El parámetro de exclusión relevante fue -xr!*\target\* .

You might also like