Comado Robocopy
ROBOCOPY es uno de los comandos disponibles ms poderosos,
tiles y empleados en la lnea de comandos de Windows. Inicia la
aplicacin Robocopy.exe incluida en todas las versiones de
Windows, que permite copiar carpetas y directorios ya sea en una
PC local o en la red (no copia archivos aislados).
Es una especie de comando de tercera generacin que toma las
cualidades de los conocidos COPY y XCOPY y las perfecciona al
mximo.
En la prctica ROBOCOPY ofrece un sinnmero de opciones y las
copias se efectan a la mxima velocidad que permiten
fsicamente los dispositivos.
Ningn programa o aplicacin es capaz de ni siquiera acercarse a
los resultados de ROBOCOPY.
Aunque solo funciona mediante la lnea de comandos, cualquier
usuario con pocos conocimientos puede aprovecharse de sus
ventajas usndolo con las opciones elementales.
Imagen que muestra un proceso de copia de archivos en Windows
usando ROBOCOPY, puede observarse la velocidad a la que se
realiz el proceso.
Ventajas del uso de Robocopy en Windows
Tolera las interrupciones en la copia de archivos ya sea por cortes
de energa o en la conexin.
Realiza reintentos automticos si no se puede acceder a un
archivo.
Permite copiar grandes cantidades de archivos, imposible con
XCOPY.
Muestra indicador de progreso.
Permite copiado multihilo.
Copia correctamente toda la informacin como propiedades,
atributos, datos del propietario, fechas, etc adems mantiene
inalterables los permisos del archivo.
Formas prcticas y sencillas de usar el comando
ROBOCOPY
ROBOCOPY ORIGEN DESTINO /E
Permite copiar de forma recursiva carpetas con subdirectorios
aunque estn vacos.
ROBOCOPY ORIGEN DESTINO /S
Copia de forma recursiva carpetas con subdirectorios pero no los
vacios
ROBOCOPY ORIGEN DESTINO /MIR
MIR modo espejo, Copia de forma recursiva pero al terminar se
eliminan los archivos en el destino que ya no existen en el origen.
Es posible indicar archivos especficos para ser copiados usando
asteriscos de la siguiente forma:
ROBOCOPY ORIGEN DESTINO *.doc /E
En este caso solo se copiarn documentos de extensin de
archivo .DOC, si esta opcin no es utilizada se emplea de forma
predeterminada *.* o sea se copian todos los archivos encontrados.
Opciones que permite el comando ROBOCOPY
/R:n
Numero de reintentos en caso de algn error.
/W:n
Tiempo de espera entre reintentos.
/MT:n
Realiza copias multiproceso, n especifica el nmero de hilos,
el valor predeterminado es 8, n debe estar comprendido
entre 1 y 128.
/MOV
Mueve archivos y los elimina del origen despus de ser
copiados.
/MOVE
Mueve archivos y carpetas y los elimina del origen despus
de ser copiados.
/V
Mostrar informacin detallada durante la copia.
/L
Hace una simulacin, solo mostrar no copia.
/FP
Incluir ruta de acceso completa de los archivos en el
resultado.
/NJH
No muestra el encabezado en la consola.
/NJS
No muestra el resumen final.
/Z
Copia archivos en modo reiniciable. Escribir un registro en
el archivo incompleto en caso de que la operacin se vea
interrumpida, para que en otra ejecucin de Robocopy
pueda continuarse por donde se dej.
/MAX:n
Tamao mximo de archivo, no se copian archivos mayores
que el valor de n expresado en bytes.
/MIN:n
Tamao mnimo de archivo, no se copian archivos menores
que el valor de n expresado en bytes.
/
MAXAGE:
n
Antigedad mxima de archivo, no se copian archivos
mayores que el valor de n en das, puede usarse tambin
fecha.
Antigedad mnima de archivo no se copian archivos
/
menores que el valor de n en das, puede usarse tambin
MINAGE:n
fecha.
/
RH:hhm
m-hhmm
Horas de ejecucin, intervalo de horas en formato de 24
horas en que se debe iniciar la copia.
/
LOG:log.t
xt
Permite guardar un informa con los datos de la copia
efectuada en un archivo de texto.
Para crear un documento en tu escritorio con todas las opciones que permite el
comando Robocopy, solo introduce en la consola de CMD:
robocopy.exe /?>%userprofile%\Desktop\Opciones_Robocopy.doc
Ejemplos prcticos de tareas en que usar el comando
ROBOCOPY
Algunos ejemplos prcticos de cdigos empleados para usar
Robocopy, distintas opciones que se pueden usar. Para no crear
confusin se utiliza la misma carpeta de origen.
Se utiliza %userprofile% que es una variable de entorno que
sustituye el nombre de usuario, ya que en cada PC este es
diferente.
Siempre asegrate que si la ruta que utilizas contiene espacios en el
nombre, es necesario encerrarla entre comillas.
ROBOCOPY %userprofile%\Documents
D:\BACKUP\Documentos\ /E /MT:24 /LOG:%userprofile
%\Desktop\copia.txt
Introduciendo la lnea de cdigo anterior en la consola, se crea un
respaldo completo de la carpeta Mis documentos, emplea el modo
multiproceso copiando con 24 hilos simultneamente y al finalizar
escribe el resultado en un log nombrado: copia.txt creado en el
escritorio.
ROBOCOPY %userprofile%\Documents D:\BACKUP\Documentos\
*.doc /S
Crea un respaldo de la carpeta Mis documentos, pero solo
copiando archivos con la extensin .doc y .docx, asegurando que
solo se copien las subcarpetas que no estn vacas.
ROBOCOPY %userprofile%\Documents
D:\BACKUP\Documentos\ /e /MAX:10000
Crea un respaldo de Mis documentos pero solo copiando archivos
mayores de 10 KB.
ROBOCOPY %userprofile%\Documents
D:\BACKUP\Documentos\ /S /MAXAGE:1
Crea un respaldo de Mis documentos pero solo copiando archivos
creados o modificados en las ltimas 24 horas (/MAXAGE:1)
@echo off set dia=%date:~0,2% set mes=%date:~3,2% set
year=%date:~6,4% ROBOCOPY %userprofile%\Documents
D:\BACKUP\Documentos\%dia%-%mes%-%year%\ /MAXAGE:1
La misma operacin que con el cdigo anterior, pero en este caso
con un archivo batch que cada vez que se ejecuta crea una nueva
carpeta con el formato dia-mes-ao y permita conservar los
respaldos anteriores.
ROBOCOPY %userprofile%\Documents
D:\BACKUP\Documentos\ /E /RH:2350-2359
Crea un respaldo completo de Mis documentos inicindolo a las
11:50pm.
ROBOCOPY %userprofile%\Documents
D:\BACKUP\Documentos\ /min:10000 /L
Listar. Muestra una lista de los archivos en la carpeta de origen,
pero solo mayores de 10KB.
ROBOCOPY %userprofile%\Documents
D:\BACKUP\Documentos\ /max:10000 /L
Listar. Muestra una lista de los archivos en la carpeta de origen,
pero solo los menores de 10KB.
ROBOCOPY %userprofile%\Documents\Descargas
D:\BACKUP\Documentos\Descargas\ /E /MOT:60
Supervisar origen, crea un respaldo de la carpeta de Descargas y
revisa cada 1 hora (60 minutos) si existe algn archivo nuevo, si es
as lo agrega al respaldo ya hecho.
ROBOCOPY E:\ D:\BACKUP\DISK\ /E /R:0 /W:0 /V
Copia datos de un CD insertado en la unidad E con sectores
daados, asegurando con la opcin /R:0 que no se harn reintentos
de lectura en errores y con la opcin /W:0 que no habr tiempo de
espera. El xito tambin depende de las caractersticas de la
unidad ptica usada.
Usar los cdigos de error de ROBOCOPY
Si haces un archivo batch para automatizar algunas tareas, puedes
aprovechar los cdigos de error generados para que se reproduzca
un sonido y se muestre un mensaje de acuerdo con los resultados
obtenidos.
El cdigo de error 0 significa que no se han hecho cambios.
El cdigo de error 1 significa que la copia ha sido hecha
correctamente.
El cdigo de error 4 y mayor significa que ha habido algn error.
Estos son solo algunos, puedes utilizarlos todos y personalizar el
resultado a tu gusto.
Ejemplo del archivo batch, prubalo:
@echo off
ROBOCOPY %userprofile%\Documents D:\BACKUP\Documentos\
*.doc /s
if errorlevel 4 echo DISCREPANCIAS & goto bad
if errorlevel 1 echo Copia correcta & goto ok
if errorlevel 0 echo Sin cambios & goto okk
:bad
start C:\Windows\Media\chord.wav
msg * ERROR
pause
exit
:ok
start C:\Windows\Media\ding.wav
msg * Copia correcta
pause
exit
:okk
start C:\Windows\Media\notify.wav
msg * Sin cambios
pause
exit
Trucos y consejos al usar ROBOCOPY en Windows
Al usar Robocopy en archivos batch puedes especificar como
origen simplemente %1, de esta forma puedes arrastrar carpetas y
directorios completos encima del batch y soltarlos, la copia se
efectuar hacia el destino especificado en el cdigo, un ejemplo:
robocopy %1 D:BACKUP /E
Ten siempre la precaucin de que los nombres de directorios que
contengan espacios, deben estar encerrados entre comillas, por
ejemplo:
G:\Videos New - No funcionar
"G:\Videos New" - OK
Puedes crear en un archivo de texto la lnea de comandos a
ejecutar y despus copiarla y pegarla en el cuadro de Inicio, de esa
manera no ser necesario abrir la consola previamente.
Hazlo de forma similar al siguiente ejemplo:
CMD /K ROBOCOPY D:\Videos "G:\Videos New" /E
La opcin /K permite que la consola permanezca abierta, si
utilizas /C, la consola se cerrar al terminar el proceso.
Usar ROBOCOPY para hacer una copia idntica de un disco
duro completo
Si en algn momento necesitas clonar un disco duro, es decir
hacer una copia idntica de todos los archivos e informacin,
puedes usar ROBOCOPY para esa tarea.
Es la opcin ideal cuando necesitamos reemplazar un disco por
otro ms reciente.
Solo necesitamos conectar los dos discos y percatarnos que letra
de unidad les asigna Windows.
En caso que vayamos a copiar un disco que posee una instalacin
de Windows, necesitamos hacer dicha tarea en otra PC.
Usa el siguiente comando en la consola de CMD o en la
herramienta Ejecutar:
ROBOCOPY D:\ E:\ /E /R:0 /W:0 /V
Sustituye D: por la letra asignada al disco cuyo contenido se va a
copiar.
Sustituye E: por la letra asignada al disco donde se va a pegar la
informacin.
Las opciones /R:0 /W:0 evitan reintentos de lectura en caso de
errores y que no habr tiempo de espera.
Como emplear Robocopy para hacer copias en la red
ROBOCOPY por su caracterstica de copiar solo archivos que se han
modificado es de gran utilidad para realizar respaldos, tanto en la
PC como en la red.
Plantilla de archivo batch para realizar una copia de una fuente
determinada a un destino incluyendo todos los permisos de
acceso, cuando se ejecute regularmente solo copiar archivos que
hayan sido modificados. Para usarlo ingresa la ruta necesaria en la
fuente y destino.
@ECHO OFF
SETLOCAL
SET _fuente=RUTA fuente
SET _destino=RUTA destino
SET _que=/COPYALL /B /SEC /MIR
SET _opciones=/R:0 /W:0 /LOG:log.txt /NFL /NDL
ROBOCOPY %_ fuente % %_destino% %_que% %_opciones%
Significado de cada opcin.
/COPYALL Copia informacin de todos los archivos.
/B Copiar archivos en modo de copia de seguridad.
/SEC Copia archivos con seguridad.
/MIR Reflejar un rbol de directorios.
/R:n Numero de reintentos.
/W:n Tiempo a esperar entre reintentos.
/LOG Ubicacin del log de salida.
/NFL Sin lista de archivos, no registrar nombres de archivo.
/NDL Sin lista de directorios, no registrar nombres de directorio.
En caso de que necesites utilizar ROBOCOPY para realizar una
copia de un servidor a otro en la red, es necesario autentificarse
primero, hazlo el batch de la siguiente forma:
@ECHO OFF
SETLOCAL
SET
SET
SET
SET
_fuente=\\Servidor1\Usuario
_destino=\\Servidor2\Backup_Usuario
_que=/COPYALL /B /SEC /MIR
_opciones =R:0 /W:0 /LOG:log.txt /NFL /NDL
NET USE\\Servidor1\IPC$ /u:nombre_de_usuario contrasea
ROBOCOPY %_ fuente % %_destino% %_que% %_opciones%
Otro cdigo en este caso til para subir archivos de la PC a tu
servidor web.
SET src="D:\origen de los archivos"
SET dest="\\servidor\backup$"
SET log="C:\logs\copia.log"
robocopy %src% %dest% /E /Z /SEC /MIR /R:1 /LOG:%log%
Es posible ejecutar dos tareas al mismo tiempo minimizadas, para
eso utilzalo en un batch de la siguiente forma:
@ECHO OFF
Start /Min "tarea1"
Robocopy\\ArchivoServidor1\C$\Database1\\ArchivoServidor
BackupA\c$\Backups
Start /Min "tarea2"
Robocopy\\ArchivoServidor2\C$\Database2\\ArchivoServidor
BackupB\c$\Backups
Para limitar el ancho de banda al usar Robocopy en la red, es
posible usar el parmetro /IPG:n que enviar paquetes de 64KB
cada uno seguidos por un retraso especificado en n de
milisegundos.