Script básico para copia de seguridad en Windows

He tenido la necesidad de ir haciendo backups de mis datos y documentos por seguridad. Más que nada, de actualizarlos porque copia tenía hecha, pero con varios meses y quería ponerla al día.

Normalmente tengo una copia local y otra en un disco externo. Como la mayoría de nosotros, entre los que me incluyo, lo que hacemos es "copiar y pegar", esperar a que los archivos sean leídos, te pregunte si sobrescribe o no...etc, he pensado que ya era hora tener un pequeño script que haga todo eso de forma transparente, así ahorramos un montón de tiempo.

Para crearlo, solo es necesario pegar el código en un archivo.txt (con el nombre que queráis) y cambiar la extensión de este a .bat
@echo off
echo ************************
echo    Copia de seguridad
echo ************************

xcopy "E:\Mis documentos" "F:\Mis documentos" /d /y /e /h /r /i
xcopy "E:\Descargas" "F:\Descargas" /d /y /e /h /r /i
xcopy "E:\Documentos" "F:\Documentos" /d /y /e /h /r /i
xcopy "E:\Programas" "F:\Programas" /d /y /e /h /r /i

pause

Se trata de una copia incremental en la que, si no existe una copia primero en el destino, creará una total de forma predeterminada. Cuando lo volvamos a ejecutar, solo copiará los archivos modificados, desde la última copia, lo que supone un ahorro de tiempo y comodidad.

Ese sería el código aplicado a mi caso, desde un disco a otro externo pero lo podéis cambiar según necesidad.

Para rizar más el rizo, podemos automatizar la copia añadiendo al programador de tareas si lo queremos ejecutar un día en concreto o cada X tiempo, hora...etc

5 comentarios:

  1. Muchas gracias por el script, aprovecho y te dejo uno que hice para renombrar archivos de forma masiva, que utilizo frecuentemente en la oficina:

    @echo off
    for /f %%a IN ('dir /b *.jpg-large*') do (
    ren %%a ???-large.jpg
    )
    :eof

    El funcionamiento es el siguiente:
    Dentro de la carpeta que se ejecuta, el script comenzará a buscar todos los archivos que contengan la condición que está entre los dos asteristicos, en este caso busca los archivos que contengan la frase ".jpg-large" y los renombra con el consecutivo del ciclo (%%a) y agregando al final la frase "-large.jpg".

    Ejemplo:
    Dentro de la carpeta existen los archivos "1.jpg-large.jpg" y "2.jpg-large.jpg" luego de ejecutar el script los archivos quedarían con el nombre "1-large.jpg" y "2-large.jpg"

    PD:
    Las variables se pueden editar para asignar los nombres que se desean, solo hay que tener en cuenta el número de los caracteres que hay antes de la frase que escogimos (En el script están señalados con ??? para 3 caracteres)

    ResponderEliminar
  2. Hola. El problema de "xcopy" es que si se han borrado algunos ficheros en la carpeta origen no te los borra en la carpeta destino, esto provoca que transcurrido algún tiempo tienes la carpeta destino lleno de archivos basura. Lamentablemente no he conseguido arreglar esto

    ResponderEliminar
  3. Buenas, me podeis explicar para que sirven las siguientes cosas: "/d /y /e /h /r /i", es para mi TDR de grado medio en redes i sistemas, seria de gran ayuda si me contestaseis, muchas gracias por el script!

    ResponderEliminar
    Respuestas
    1. /? ahí simpre tendrás la respuesta de cualquier parámetro

      Eliminar