iDioteca
  1. Informática \ Workflow

    Hacer backup en carpeta con nombre de fecha usando un archivo bat

    Este finde semana estuve reorganizando la forma como almaceno la información de las webs que manejo y también haciendo copias de respaldo de las mismas, además necesitaba crear backups ordenados por fechas de algunos sitios que aún estoy modificando; esta tarea es sencilla cuando se trata de una o dos carpetas, pero cuando el número se incrementa se torna un tanto repetitiva y trabajosa.

    La solución que se me ocurrió fue crear un pequeño archivo bat que realice esta labor por mi de una manera un poco más rápida. Hice una búsqueda rápida en la web y finalmente obtuve el resultado que esperaba.

    Coloco el contenido de mi archivo backup a continuación para que pueda ser usado por cualquier persona a quien le interese.

    Deberemos reemplazar “Actual” por el nombre de la carpeta que contiene nuestros archivos de origen e indicar el lugar donde se creará la nueva carpeta en mi caso es una carpeta con el nombre Backup

    @ECHO OFF
    @ECHO RESPALDO DE ARCHIVOS
    REM creamos una variable conteniendo la fecha actual con el formato año-mes-dia SET FOLDER=%date:~6,4%-%date:~3,2%-%date:~0,2%
    REM Creamos la carpeta donde se guardará la copia de respaldo IF NOT EXIST Backup MKDIR Backup
    MKDIR Backup%FOLDER%
    REM Seteamos las propiedades del comando XCOPY SET BACKUPCMD=XCOPY /S /C /D /E /H /I /R /Y
    REM Ejecutamos la instrucción %BACKUPCMD% Actual. Backup%FOLDER%

    El resultado es la copia de los archivos en la carpeta 2007-09-10
    Carpeta Backup

    Monday 10 de September de 2007 | 00:41 / 23 Comentarios

Comentarios

23 Responses to “Hacer backup en carpeta con nombre de fecha usando un archivo bat”

  1. refari says:

    Buen dato socio…………….thank you

  2. Carlos says:

    TU bach es bueno pero no funciona para server 2003 stardar ya hice las pruebas si sabes algun dato te lo agradeceria

    Chau

  3. Javier says:

    Carlos que es lo que no te funciona el crear la carpeta o el obtener la fecha? Si el problema es el obtener la fecha
    SET FOLDER=%date:~6,4%-%date:~3,2%-%date:~0,2%
    puede ser la configuracion regional que tiene el sistema, hice pruebas cambiando la configuracion regional (español, ingles y frances) y en cada uno me daba valores distinto.
    Alguien sabe como obtener la fecha correctamente independientemente de la configuracion regional???

  4. ivan says:

    Oie amigo buen dia fiate que si me creaa la carpeta el bat pero sin ningun dato

    Tiienes idea de que estoy haciendo mal..

  5. Luiggi says:

    Necesito saber que fecha tiene un archivo y compararlo con la fecha de otro archivo, y si son iguales las fecha no lo remplazo , y si la fecha es menor a la del archivo a comparar lo actualizo

  6. jesus hdz says:

    Excelente. Me sirvio de mucho. Gracias

  7. Jaime Naranjo says:

    Problema lo hize al pie de la letra eso espero pero me manda que el directorio ya existe … me pueden ayudar mi correo es jnaranjo@rimith.com
    o j_naranjo_c_@hotmail.com

  8. Carlos says:

    Estimado,
    Necesito saber como modificar el bat que que realize el backup todos los dias tomando la fecha del dia y no que sobrescriba el mismo.
    Gracias.
    slds.

    @ECHO OFF
    @ECHO RESPALDO DE ARCHIVOS
    xcopy c:\MutualPeRedCaja\mutual.mdb f:\backups\MutualPeRedCaja /f/Y
    xcopy c:\MutualPeVen\mutual.mdb f:\backups\MutualPeVen /f/Y
    xcopy c:\MutualDoRed\mutual.mdb f:\backups\MutualDoRed /f/Y
    xcopy c:\cad\eje2010enered\conta.mdb f:\backups\CadEjeEne2010enered /f/Y
    xcopy c:\cad\eje2010eneredfar\conta.mdb f:\backups\CadEjeEneRedFar /f/Y
    echo Backup Completo!!!
    Pause

  9. rogelio says:

    hola , tengo una duda ya cree el bat con las carpetas que quiero copiar mi problemas es que copia las carpetas en el mismo lugar donde estan las originales ¿como prodria hacer que las carpetas que estoy copiando las mande a un disco duro externo o una memoria usb? de antemano les anticipo las gracias

  10. Pablo says:

    Gacias por el dato me sirvio la misma formula para nombrar archivos con la fecha actual

  11. armando says:

    mil gracias viejo me sirvio mucho.

  12. Roberto Arcos Enriquez says:

    Gracias amigo funciona correctamente unicamente tuve que quitarle un punto (.) que estaba de mas..Gracias ya lo modifique y quedo muy bien…Gracias nuevamente

  13. Noe says:

    Necesito ayuda de un experto, Puedo tener un bat que me permita quitarme este trabajo: todos los dias copio manualmente de una carpeta con nombre de fecha del dia anterior ubicada en un servidor compartido todos los archivos y lo copio en mi PC en una carpeta con la fecha del dia en que hago la copia…

  14. marcelo says:

    funciona de primera, muy bueno tu aporte segui así

  15. Edilberto Garcia Garcia says:

    tengo una carpeta c:\archivosdeprograma\aspel\saewin\datos
    quiero respaldar esta carpeta de datos en una memoria USB, pero que cree carpetas y que nombre de las carpeta sea la fecha actual

    mi correo es garciaperforman@hotmail.com

    gracias por su ayuda

  16. HarryMetal says:

    este codigo es para que el bat comprima en un rar el respaldo y lo copie a tu USB, claro tendrias que tener el Winrar instalado para que sirva

    @Echo off
    “C:\Program Files\WinRAR\Winrar.exe” a -r -dh -rr -agDD-MMM-YYYY-HHMMSS f:\Respaldodatosaspel c:\archivosdeprograma\aspel\saewin\datos

    espero te sirva ^_^

  17. Nestor says:

    Muy bueno este aporte pero no entiendo la parte donde debo porner la ruta a donde quiero que se pegue el backup.

    Deberemos reemplazar “Actual” por el nombre de la carpeta que contiene nuestros archivos de origen e indicar el lugar donde se creará la nueva carpeta en mi caso es una carpeta con el nombre Backup

    ejemplo esta es la ruta que deseo en que se pegue mi backup

    C:\Documents and Settings\Administrador\Escritorio\1

  18. danidrach says:

    Por si a alguien le interesa, os dejo mi propio “bat” jeje, ultimamente me ha dado por hacer cosillas asi:
    ———————————————–
    @echo off
    ::En principio, esta pensado para iniciarlo diariamente con el programador de tareas de Windows
    ::(o el que sea), basicamente hace una copia del archivo que le indiquemos (aún no lo he probado con varios usando * en el “for”)
    ::en la carpeta que le indiquemos, y el dia 28 de cada mes, crea un .zip con todos los backups y los elimina, dejando un .zip con
    ::el mes-año.zip como nombre de archivo, muy util para backup de LOGS o archivos “simples”.
    ::NOTA: Asegurate de que el zip.exe esta en la misma carpeta que este .bat.

    set año=%Date:~6,4%
    set mes=%Date:~3,2%
    set dia=%Date:~0,2%
    set fecha=%Date:~0,2%-%Date:~3,2%-%Date:~6,4%
    :::::::::CARPETA ORIGEN (con comillas)::::::::::
    set rutaorig=”C:\”
    :::::::::CARPETA DESTINO (sin comillas)::::::::::
    set carpetadest=C:\Users\Loquesea

    if %dia% EQU 28 xcopy zip.exe “%carpetadest%”
    cd %rutaorig%
    :::::::::NOMBRE ARCHIVO::::::::::
    for %%f in (tuarchivo.txt) do set archivo=%%f

    echo Haciendo copia de seguridad en…%carpetadest%
    ping -n 4 127.0.0.1 >NUL
    echo F | xcopy %archivo% “%carpetadest%\%fecha%-%archivo%” >NUL
    :::::::::DE AQUI HACIA ABAJO ARCHIVA MENSUALMENTE EN UN ARCHIVO ZIP::::::::::
    if %dia% EQU 28 cd %carpetadest%
    :::::::::EXTENSION ARCHIVO::::::::::
    if %dia% EQU 28 zip.exe %mes%-%año% *.txt
    :::::::::EXTENSION ARCHIVO (en lugar de *.txt)::::::::::
    if %dia% EQU 28 del /F *.txt

    if %dia% EQU 28 del /F zip.exe
    —————————————-

  19. danidrach says:

    Oh si, el zip.exe lo bajais de: ftp://ftp.info-zip.org/pub/infozip/win32/

  20. >Oscar says:

    Hola Buenas a todos, estuve leyendo como hacer un backup y la verdad me ayudaron muchos sus aportes de cada uno.
    Mi problema es que tengo un .bat que me crea el backup de una BD MyDQL hasta ahi todo muy bien me crea la carpeta denominada Backup y dentro un archivo denominado archivo_fecha_hora, hasta aca muy bien.
    Mi problema radica en como puedo generar un .bat que me levante la base de datos que yo eliga de todas las que tenga en esa carpeta, como por elemplo si tengo asi:
    archivo_24112011_20345807
    archivo_24112011_20551095
    archivo_24112011_20551346 “esta es la que deseo levantar”
    archivo_25112011_19460884
    archivo_25112011_19461132
    Si podrian guiarme como puedo realizar esa secuencia de codigos o si debo impolemntar alguan variable que sustituya a fecha hora de manera generica, nose se me esta Nublando el Dia con esto.

  21. miguel says:

    Hola deseo saber como puedo hacer un backup de los archivos del sistema utilizando un bat y que este backup se suba a una unidad de red y mi sistema operativo es win xp pero lo que me gustaría es que yo todos los días le de ejecutar a este .bat y me envié esta información a esta unidad de red con la fecha por favor amigos necesito de su ayuda gracias

  22. Luis says:

    En un bloc de notas copiar el siguiente codigo:
    @echo off
    title Copia de seguridad de la base de datos
    color 1E
    @echo ———————————————-
    @echo REPARACION DE ARCHIVOS USB
    @echo ———————————————-
    @echo Realizando copia de seguridad
    set fecha=%date%
    rem le quitamos las barras a la fecha
    set fecha=%fecha:/=%
    xcopy “D:\Ruta donde esta la carpeta del archivo que necesita hacer la copia de seguridad \*.*” “C:\Ruta donde quiere guardarlo\BD fecha=%date:~6,4%-%date:~3,2%-%date:~0,2%\*.*”

    le creara carpetas con la fecha del computador y dentro de esta carpeta estara el archivo que necesitaba

  23. Mario Roberto says:

    Muchas gracias. Me ha servido mucho para respaldos en el servidor.

Dejar un comentario