- Inicio en Windows con el Administrador de discos un disco SSD en MBR, con formato exFat, y le asigno la letra de unidad Z:
- Creo el batch (archivo .bat) de copia de seguridad (copia de los documentos de Nextcloud):
@echo off
Title Copia de Seguridad
echo =========================================
echo = =
echo = Copia de Seguridad =
echo = =
echo =========================================
echo.
echo Este comando copiara la carpeta de Nextcloud, en este caso, dentro de una nombrada BACKUP en la unidad Z
pause
@echo off
ROBOCOPY %userprofile%\Nextcloud Z:\BACKUP\Documentos\ /S /R:0 /w:0
IF ERRORLEVEL 5 GOTO C
IF NOT ERRORLEVEL 5 GOTO Z
:C
cls
@echo off
echo La unidad Z no esta disponible la carpeta BACKUP se creara en la unidad C
pause
ROBOCOPY %userprofile%\Documents Z:\BACKUP\Documentos\ /S
echo Revise el informe de la copia realizada
pause
:Z
- Ejecuto y listo: copia de seguridad recursiva.
Última edición por gbeltran el 26 Jul 2024, 13:04, editado 1 vez en total.
@echo off
Title Copia de Seguridad
echo =========================================
echo = =
echo = Copia de Seguridad =
echo = =
echo =========================================
echo.
echo Este comando copiara la carpeta Mis Documentos dentro de una nombrada BACKUP en la unidad Z
[b]REM pause[/b]
@echo off
ROBOCOPY %userprofile%\Nextcloud Z:\BACKUP\Documentos\ /S /R:0 /w:0
IF ERRORLEVEL 5 GOTO C
IF NOT ERRORLEVEL 5 GOTO Z
:C
cls
@echo off
echo La unidad Z no esta disponible la carpeta BACKUP se creara en la unidad C
pause
ROBOCOPY %userprofile%\Documents Z:\BACKUP\Documentos\ /S
echo Revise el informe de la copia realizada
pause
:Z
Luego, con el administrador de tareas de Windows podemos programar la tarea para que se ejecute de forma periódica a la hora que queramos. Recordar poner la compatibilidad para la versión de Windows que tengamos.
Última edición por gbeltran el 26 Jul 2024, 13:05, editado 1 vez en total.
@echo off
Title Copia de Seguridad
echo =========================================
echo = =
echo = Copia de Seguridad =
echo = =
echo =========================================
echo.
echo Este comando copiara la carpeta Mis Documentos, Nextcloud y tu Dropbox dentro de una nombrada Backup en la unidad Z
REM pause
@echo off
ROBOCOPY %userprofile%\Documents Z:\Backup /S /R:0 /w:0
ROBOCOPY %userprofile%\Dropbox Z:\Backup\Dropbox /S /R:0 /w:0
ROBOCOPY %userprofile%\Nextcloud Z:\Backup\Nextcloud\ /S /R:0 /w:0
IF ERRORLEVEL 2 GOTO C
IF NOT ERRORLEVEL 2 GOTO Z
:C
cls
@echo off
echo La unidad Z no esta disponible. Se crearán en C:\Backup2
pause
ROBOCOPY %userprofile%\Documents C:\Backup\ /S
ROBOCOPY %userprofile%\Dropbox C:\Backup\Dropbox /S /R:0 /w:0
ROBOCOPY %userprofile%\Nextcloud C:\Backup\Nextcloud /S /R:0 /w:0
echo Revise el informe de la copia realizada
pause
:Z
NOTA: En el script original tenía el error del número de error: estaba a 5. Ahora está a 2. Esta es la explicación:
Parece que hay un problema con la forma en que tu script verifica el error después de los comandos `ROBOCOPY`. En tu script, estás usando `IF ERRORLEVEL 5 GOTO C` y `IF NOT ERRORLEVEL 5 GOTO Z`.
El comando `IF ERRORLEVEL n` en batch script comprueba si el nivel de error es `n` o más. Entonces, `IF ERRORLEVEL 5` se traduce a "si el nivel de error es 5 o más".
`ROBOCOPY` devuelve `1` si se copiaron archivos con éxito y `0` si no se necesitaba copiar ningún archivo. Los códigos de error de `2` a `16` indican varios errores. Por lo tanto, tu script saltará a la etiqueta `:C` si `ROBOCOPY` devuelve `5` o más, lo que indica un error.
Por otro lado, `IF NOT ERRORLEVEL 5` se traduce a "si el nivel de error es menos de 5". Por lo tanto, incluso si `ROBOCOPY` se ejecuta con éxito y copia los archivos (devolviendo `1`), tu script saltará a la etiqueta `:Z`.
Para solucionar este problema, puedes cambiar tu script para que salte a la etiqueta `:Z` solo si `ROBOCOPY` devuelve `0` o `1`, lo que indica que no hubo errores.