1.11.2006

back01.bat

Este archivo bat copia/respalda archivos y directorios a una maquina en una red windows con una carpeta/directorio compartido (\\equipo\directorio), el directorio tiene que poder ser accedido sin nesesidad de password

El origen y destino de los archivos estan indicados en un archivo de configuracion (CFG en este ejemplo)


----------back01.bat-------------
@ECHO OFF

REM BACK v0.1
REM CREADO EL dom ene 08 18:44:21 CST 2006
REM POR STORMBRINGER
REM BAJO UNA LICENCIA CREATIV COMMONS
REM Atribución-NoComercial-CompartirDerivadasIgual 2.50
REM http://creativecommons.org/licenses/by-nc-sa/2.5/
REM http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode

REM -LIMITACION DE RESPONSABILIDADES-
REM EL CREADOR NO SE HACE RESPONSABLE POR UN USO
REM MALINTENCIONADO O DAÑOS CAUSADOS POR EL USO DE ESTE ARCHIVO.


REM COPIA ARCHIVOS DE UN PUNTO A OTRO,
REM DE FORMA QUE SOLO SE COPIEN ARCHIVOS NUEVOS Y
REM SE SOBREESCRIBAN LOS QUE TENGAN UNA FEHA DE CREACION
REM POSTERIOR A LOS EXISTENTES



REM VARIABLES Y CONFIGURACION

REM SE ASUMEN LOS SIGUIENTES DATOS:
REM 1-QUE EL NOMBRE DEL EQUIPO REMOTO ES [REQUIPO] SIN LOS BACKSLASH (\\).
REM 2-EL EQUIPO REMOTO TIENE QUE PODER SER ACCEDIDO POR EL USUARIO
REM SIN NESESIDAD DE PASSWORD (A MODOFOCAR EN VERSIONES POSTERIORES).
REM 3-QUE LA CARPETA/DIRECTORIO ES [%USERNAME%].
REM 4-QUE LA UNIDAD LOGICA DONDE SE VA A VER (MAPEAR) EL EQUIPO ES [Y].
REM 5-QUE EL ARCHIVO CON LOS LOGS ES [LOGS.LOG].
REM 6-QUE EL ARCHIVO CON LOS DIRECTORIOS/CARPETAS A RESPALDAR Y LOS
REM DESTINOS ESTAN EN EL ARCHIVO [CFG].

REM NOMBRE DEL EQUIPO REMOTO
SET EQREMOTO=REQUIPO

REM DIRECTORIO REMOTO
SET DRREMOTO=%USERNAME%

REM UNIDAD A MAPEAR
SET UNIDAD=Y

REM ARCHIVO CON PATHS A RESPALDAR/COPIAR
SET CFG=CFG

REM ARCHIVO CON LOS LOGS
SET LOGS=LOGS.LOG



REM CARGA CAJA DE INICIO
REM TMP CONTIENE LA ETIQUETA DE UN GOTO VARIABLE
SET TMP=PROC
GOTO MSG0

REM **************************
REM PROCESO PRINCIPAL
:PROC

REM CHECA SI EXISTE EL ARCHIVO CON LOS PATHS
REM EN CASO DE NO EXISTIR MUESTRA UNA CAJA DE ERROR Y TERMINA
if NOT exist %CFG% GOTO MSERR

REM AGREGA AL ARCHIVO LOG
ECHO --------------------------------------------[%date% %TIME%]--- >> %LOGS%

REM MAPEA UNIDAD
NET USE %UNIDAD%: \\%EQREMOTO%\%DRREMOTO% >> %LOGS%

GOTO MSGPROC
:PROCESO1

REM COPIA
REM NO SE USA
REM y /d /e /c /f /h /z %ORIGEN% %UNIDAD%:\ >> %LOGS%

ECHO . >> %LOGS%
REM LEE RECURSIVAMENTE EL ARCHIVO CON LOS PATHS Y HACE EL XCOPY
REM for /F "eol=" %%i in (%CFG%) do xcopy /d /e /c /f /h /z %%i %UNIDAD%:\ >> %LOGS%

for /F "eol=; tokens=1,2* delims= " %%i in (%CFG%) do xcopy /I /Y /d /e /c /f /h /K /R /z %%i %UNIDAD%:\%%j >> %LOGS%

REM @echo UNO: (%i) DOS: (%j)

REM QUITA MAPEADO
ECHO . >> %LOGS%
NET USE %UNIDAD%: /DEL >> %LOGS%

REM AGREGA AL ARCHIVO LOG
ECHO --------------------------------------------[TERMINADO]--- >> %LOGS%

SET TMP=FIN
GOTO MSG1


REM ************************************
REM ************************************
REM CAJAS

:MSGPROC
@CLS
ECHO ....RESPALDO DE ARCHIVOS.................................
ECHO . .
ECHO . COPIANDO ARCIVOS, NO CIERRE ESTA VENTANA .
ECHO . .
ECHO .........................................................

GOTO PROCESO1

:MSGERR
@CLS
ECHO ....RESPALDO DE ARCHIVOS.................................
ECHO . ERROR .
ECHO . EL ARCHIVO %CFG% CON LAS RITAS NO EXITE .
ECHO . .
ECHO .........................................................

GOTO FIN

:MSG0
@CLS
ECHO ....RESPALDO DE ARCHIVOS.................................
ECHO . .
ECHO . POR FAVOR CIERRE OUTLOOCK Y LOS DOCUMENTOS .
ECHO . QUE TENGA ABIERTOS (EXCEL, WORD, ETC...) .
ECHO . Y PRECIONE CUALQUIER TECLA PARA EMPEZAR O .
ECHO . [CONTROL+C] PARA CANCELAR ESTE PROCESO .
ECHO . .
ECHO . *** ESTE PROCESO ACTUALIZA (SOBRE-ESCRIBE) *** .
ECHO . *** LOS ARCHIVOS EXISTENTES *** .
ECHO .........................................................
PAUSE

GOTO %TMP%

:MSG1
@CLS
ECHO ....RESPALDO DE ARCHIVOS.................................
ECHO . .
ECHO . PROCESO TERMINADO .
ECHO .........................................................
PAUSE

GOTO %TMP%

:FIN

----------------EOF----------------

Este es el archivo de configuracion.
La forma del archivo es:
origen destino

Donde el origen es obligatorio, mientras que el destino es opcional

------------------CFG-------------
; FORMA DE ARCHIVO:
;
; DONDE ES EL NOMBRE DEL DIRECTORIO RAIZ DONDE SE VAN A
; COPIAR LOS ARCIVOS. SI NO EXISTE LO CREA
;
;EJEMPLO:
;"C:\MIS DOCUMENTS" DOCS1
;COPOIA TODOS LOS ARCHIVOS Y DIRECTORIOS DE "C:\MIS DOCUMENTS" AL DESTINO,
; DENTRO DEL DIRECTORIO "DOCS1"
; SI EL DIRECTORIO-DESTINO SE OMITE, TODO SE COPIA EN LA RAIZ DE LA UNIDAD MAPEADA

;EL ESPACIO ENTRE EL ORIGEN Y EL DESTINO ES OBLIGATORIO, EN EL CASO DE ARCHIVOS
; Y CARPETAS/DIRECTORIOS CON NOMBRES COMPUESTOS (TIPO MIS DOCUMENTOS) TIENEN
; QUE IR ENCERADOS ENTRE COMILLAS ""

;copia el contenido de D:\bar en la raiz de D:\bar
;copia el contenido de D:\foo en \foo\bar
"D:\foo bar" foo\bar

------------EOF----------