Como puedo realizar un .bat que realice un respaldo de mi computadora a mi HDD externo.

En mi trabajo debo realizar instalaciones de computadoras a diferentes usuarios, por lo cual muchas veces debo pasar información de una máquina vieja a una nueva, por medio de un HDD externo. El .bat que tengo en mente debe realizar la copia de la carpeta "documentos" (Pc Vieja) a la carpeta "documentos"(HDD externo), de ser posible que el mismo cree una carpeta en la raíz del HDD, donde me solicite el nombre de la carpeta, así yo poder escribir el usuario ya que trato con varios y cree la carpeta "documentos" en mi HDD externo.

1 respuesta

Respuesta
1

No sé con que versión de Windows trabajas. Voy a suponer que con Windows 10 (lo digo porque los nombres de las carpetas de usuarios pueden variar según la versión). Mira a ver si esto puede servirte:

@echo off
if %2.==. goto error
echo Haciendo Backup de usuario %1 sobre unidad %2:
if not exist "c:\users\%1\Documents" goto :nodatos
if not exist %2:\%1\Documents md %2:\%1\Documents
xcopy /D /S /Y /I /H "c:\users\%1\Documents\*.*" "%2:\%1\Documents"
if errorlevel 5 echo.&echo Error de disco en la grabacion&goto :fin
if errorlevel 4 goto :fin
if errorlevel 2 echo.&echo No hay espacio suficiente en el disco&goto :fin
if errorlevel 1 echo.&echo No hay archivos a copiar&goto :fin
echo Backup terminado correctamente
goto :fin
:nodatos
echo No hay documentos del usuario %1 en la carpeta c:\users\%1\Documents. Revisar
pause
goto :fin
:Error
Echo El formato de la llamada es %0 Usuario UnidadDeBackup
echo Ejemplo de Backup de usuario pepe sobre unidad G:
Echo %0 pepe G
:Fin
Pause

Al llamar al bat le pasarías como primer parámetro el nombre del usuario del que quieres hacer backup (siempre de la carpeta Documents) y como segundo parámetro la unidad que se ha asignado al disco externo. Si prefieres otra forma de usarlo me lo dices y lo vemos. He usado el XCOPY porque soy un poco antiguo. Sé que existe un comando mucho más potente (el ROBOCOPY) pero no estoy muy familiarizado con él. En todo caso sería cosa de cambiar la línea 6

¡Gracias! Voy a probarlo apenas pueda

El .bat me funciono perfectamente, solo una consulta el xcopy aguanta "nombres de archivo extenso" eso que esta carpeta, sobre carpeta, sobre carpeta, etc... tengo entendido que el robocopy si lo hace

Desde el punto de vista de nombres de archivo yo creo que el xcopy admite cualquier cosa. Pero, como te comentaba, si por alguna razón se considera más adecuado usar el ROBOCOPY solo habría que cambiar la línea sexta por la correspondiente con ese comando (y tal vez ajustar los ERRORLEVEL a los valores que pudiera asignar).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas