robocopy - Copia avanzada

Mantenido el

Cuando quieres respaldar o replicar carpetas, copy y xcopy pueden quedarse cortos.

ROBOCOPY (Robust File Copy) es un potente comando de copia incluido en Windows. Ofrece replicación, copia incremental, control de reintentos y registro para copias fiables.

Este artículo explica robocopy desde lo básico hasta su uso práctico en copias de seguridad, con ejemplos de código.

Si solo quieres copiar una carpeta con todo su contenido, la forma básica es robocopy origen destino /E. Para que el destino sea una copia exacta, usa /MIR. Para valorar el resultado, consulta la sección de códigos de salida.

Sintaxis de robocopy

ROBOCOPY origen destino [archivo] [opciones]
ElementoDescripción
origenRuta de la carpeta de origen
destinoRuta de la carpeta de destino
archivoNombre de archivo a copiar (admite comodines; por defecto *.*)
opcionesOpciones que controlan el comportamiento

Ejemplo básico

robocopy C:\Source D:\Backup
- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>robocopy C:\Source D:\Backup
-------------------------------------------------------------------------------
ROBOCOPY :: Copia de archivos reforzada para Windows
-------------------------------------------------------------------------------
Inicio : miércoles, 11 de marzo de 2026 10:00:00
Origen : C:\Source\
Destino : D:\Backup\
Archivos : .
Total Copiados Omitidos Discordan FALLO Extras
Dirs : 3 1 2 0 0 0
Archivos : 5 5 0 0 0 0
C:\users\user>

Opciones principales

Opciones de copia

OpciónDescripción
/ECopia subcarpetas, incluidas las vacías
/SCopia subcarpetas (sin las vacías)
/MIRReplica (elimina los archivos que no existen en el origen)
/PURGEElimina del destino los archivos que ya no existen en el origen
/MOVMueve archivos (elimina los originales tras copiar)
/MOVEMueve archivos y carpetas
/ZModo reiniciable (una copia interrumpida puede continuar)
/MT:nCopia con n hilos (1-128; 8 si se omite)
/COPY:flagsElige qué copiar (D: datos, A: atributos, T: marcas de tiempo, S: seguridad)

Opciones de selección

OpciónDescripción
/XF archivoExcluye los archivos indicados
/XD carpetaExcluye las carpetas indicadas
/XOExcluye archivos más antiguos (copia incremental)
/MAXAGE:nExcluye archivos con más de n días
/MINAGE:nExcluye archivos con menos de n días
/MAX:nExcluye archivos de más de n bytes
/LMuestra lo que se haría sin hacerlo

Opciones de reintento

OpciónDescripción
/R:nReintentos en caso de error (por defecto: 1.000.000)
/W:nEspera entre reintentos en segundos (por defecto: 30)

Opciones de registro

OpciónDescripción
/LOG:archivoEscribe el registro en un archivo (sobrescribe)
/LOG+:archivoAñade el registro al final del archivo
/TEEMuestra la salida en consola y en el registro
/NPNo muestra el porcentaje de progreso
/NFLNo registra los nombres de archivo
/NDLNo registra los nombres de directorio
/VSalida detallada
Cuidado con el valor predeterminado de /R

El valor predeterminado de /R es 1.000.000 de reintentos. Si se pierde la conexión de red durante una copia, robocopy puede seguir reintentando durante mucho tiempo. En el uso real, indícalo siempre de forma explícita, por ejemplo /R:3.

Barra invertida final antes de las comillas

Cuando una ruta entre comillas termina en \", la \ se interpreta como escape de la " y el argumento no se pasa correctamente. No escribas "C:\Mi Carpeta\"; escribe "C:\Mi Carpeta" sin la \ final.

Copiar con subcarpetas (/E)

La opción /E copia las subcarpetas de forma recursiva, incluidas las vacías.

robocopy C:\Source D:\Backup /E

Replicación (/MIR)

La opción /MIR reproduce exactamente la estructura de la carpeta de origen en el destino (combina /E y /PURGE). Los archivos que solo existen en el destino se eliminan.

robocopy C:\Source D:\Backup /MIR
Precauciones con /MIR

/MIR elimina los archivos y carpetas que solo existen en el destino. Si te equivocas en la ruta de destino, pueden borrarse archivos no deseados. La primera vez, haz siempre una prueba con /L.

Ejecución de prueba (/L)

Con /L no se copia nada; robocopy solo muestra qué archivos se copiarían o eliminarían.

robocopy C:\Source D:\Backup /MIR /L
チェック

Haz siempre una prueba con /L antes de una copia de seguridad real, sobre todo con /MIR o /PURGE, para evitar borrados inesperados.

Acelerar la copia (/MT)

/MT:n copia varios archivos en paralelo. Es especialmente eficaz cuando hay muchos archivos pequeños.

robocopy C:\Source D:\Backup /E /MT:16
Registros con /MT

Con /MT, varios hilos escriben en el registro a la vez, por lo que el orden de las líneas puede mezclarse.

Registro

Cómo guardar los resultados de robocopy en un archivo de registro.

robocopy C:\Source D:\Backup /E /LOG:"C:\Logs\backup.log" /TEE /NP
OpciónDescripción
/LOG:Indica el archivo de registro (sobrescribe)
/TEEMuestra la salida en la consola y en el registro
/NPOculta los porcentajes de progreso (registro más limpio)

Para añadir al final del registro, usa /LOG+:.

robocopy C:\Source D:\Backup /E /LOG+:"C:\Logs\backup.log" /TEE /NP

Excluir archivos y carpetas

Excluir archivos (/XF)

robocopy C:\Source D:\Backup /E /XF *.tmp *.log

Excluir carpetas (/XD)

robocopy C:\Source D:\Backup /E /XD "C:\Source\temp" "C:\Source\.git"

Ejemplo práctico: archivo por lotes de copia automática

Un archivo por lotes práctico de copia de seguridad con robocopy.

@echo off
setlocal

rem Configuracion de la copia
rem Nota: el formato de %DATE% depende de la configuracion regional. Este ejemplo supone aaaa/mm/dd.
set SOURCE=C:\Users\user\Documents
set DEST=D:\Backup\Documents
set LOGFILE=D:\Backup\Logs\backup_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.log

rem Crear la carpeta de registros si no existe
if not exist "D:\Backup\Logs" mkdir "D:\Backup\Logs"

echo Iniciando la copia de seguridad...
echo Origen: %SOURCE%
echo Destino: %DEST%

robocopy "%SOURCE%" "%DEST%" /MIR /R:3 /W:5 /LOG+:"%LOGFILE%" /TEE /NP /XD ".git" "node_modules"

rem Comprobar el codigo de salida
IF %ERRORLEVEL% LSS 8 (
    echo La copia de seguridad se completo correctamente.
) ELSE (
    echo Se produjo un error. Revisa el registro.
)

endlocal

Códigos de salida de robocopy

robocopy devuelve sus propios códigos de salida. A diferencia de la mayoría de los comandos, un código distinto de cero puede significar éxito. El código es una combinación de estos bits:

ValorSignificado
1Se copiaron correctamente uno o más archivos
2Se encontraron archivos o carpetas adicionales en el destino
4Se detectaron archivos o carpetas que no coinciden
8Algunos archivos no se pudieron copiar (errores de copia)
16Error grave (robocopy no pudo continuar, p. ej. ruta no válida, sin acceso o sintaxis incorrecta)

Por ejemplo, el código 3 significa 1 (se copiaron archivos) + 2 (había archivos adicionales). El 0 significa que no había nada que copiar (todo es idéntico).

Cómo interpretar el código de salida

Los códigos 0-7 no son fallos; 8 o más indica error. En un archivo por lotes, escribe IF %ERRORLEVEL% LSS 8. Cuando /MIR elimina archivos adicionales, el código incluye el 2, que tampoco es un error.

robocopy frente a xcopy

Característicarobocopyxcopy
ReplicaciónSí (/MIR)No
Control de reintentosSí (/R, /W)No
RegistroSí (/LOG, /TEE)No
Modo reiniciableSí (/Z)Sí (/Z)
MultihiloSí (/MT)No
Copia incrementalSí (/XO)Sí (/D)
Resistencia en redExcelenteBásica
Códigos de salidaDetallados (0-16)Básicos (0-5)

Microsoft ha declarado obsoleto xcopy y recomienda robocopy, así que prefiere robocopy en los archivos por lotes nuevos.

Resumen

Este artículo explicó cómo usar el comando robocopy.

robocopy es una potente herramienta de copia incluida en Windows. En las copias de seguridad en particular, combinar replicación, registro y control de reintentos permite una solución fiable.

Artículos relacionados

Pregunta de práctica

Problema de práctica

¿Qué afirmación sobre la interpretación de los códigos de salida de robocopy es generalmente correcta?

回答がサーバーに送信されることはありません
#Símbolo del sistema #Archivos por lotes #Línea de comandos #Comandos