Skip to content

Instantly share code, notes, and snippets.

@jumarag
Last active May 27, 2016 09:44
Show Gist options
  • Save jumarag/7e8e270095b3664e25ed1d43ebf4266d to your computer and use it in GitHub Desktop.
Save jumarag/7e8e270095b3664e25ed1d43ebf4266d to your computer and use it in GitHub Desktop.
Script para hacer una copia del directorio de un usuario en una unidad extraíble.
@echo off
rem # #############################################################################################
rem # ### Script para realizar copias de seguridad de un usuario en un disco extraible ###
rem # ### La copia se hace en una carpeta llamada backups en el dispositivo externo ###
rem # ### Por ejemplo: D:\backups\carpeta_usuario ###
rem # #############################################################################################
rem # Comando para listar las unidades extraibles del equipo (usb, hdd externo, ...)
rem # wmic logicaldisk where DriveType=2 get Caption,Description,FileSystem,VolumeName
rem # Valores de DriveType:
rem # 0 = Unknown
rem # 1 = No Root Directory
rem # 2 = Removable Disk
rem # 3 = Local Disk
rem # 4 = Network Drive
rem # 5 = Compact Disc
rem # 6 = RAM Disk
@echo --------------------------------------------------------------
@echo Se va a proceder a realizar la copia de seguridad.
@echo Cierre todas las aplicaciones abiertas
@echo.
@echo Por seguridad, intente tener conectado unicamente la unidad
@echo extraible que vaya a ser usada para la copia de seguridad
@echo.
pause
:seleccionar_unidad
rem # Comprobamos las unidades extraibles conectadas
@echo.
@echo Dispositivos conectados:
wmic logicaldisk where DriveType=2 get Caption,Description,FileSystem,VolumeName
@echo.
set /p unidad=Elije la unidad donde se va ha realizar la copia de seguridad (Ejemplo D:):
@echo.
if not exist "%unidad%" (
@echo La unidad no es correcta, intentalo otra vez
pause
cls
goto seleccionar_unidad
) else (
@echo Ha seleccionado la unidad:
wmic logicaldisk where DriveType=2 get Caption,Description,FileSystem,VolumeName | find "%unidad%"
pause
goto comprobar_carpeta
)
:comprobar_carpeta
rem # Comprobamos si existe una carpeta "backups" en la unidad extraibles
if not exist "%unidad%\backups" (
goto crear_carpeta
) else (
goto inicio_copia
)
:crear_carpeta
@echo.
@echo Creando carpeta backups ...
mkdir %unidad%\backups
goto inicio_copia
:inicio_copia
@echo.
@echo --------------------------------------------------------------
@echo Iniciando Copia de seguridad ...
@echo.
@echo Copiando carpeta completa de usuario ...
xcopy "%homepath%\*.*" "%unidad%\backups\%username%\" /E /D /C /I /G /R /K /Y /Z /Q
@echo.
@echo --------------------------------------------------------------
@echo Copia de seguridad finalizada.
@echo.
pause
exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment