Generador de comandos Robocopy

Construye comandos Robocopy con /MIR, /MT, reintentos y logging para copias y sincronización en Windows.

toolboox.app/herramientas/robocopy-generator

Herramienta

Comando
robocopy "D:\datos" "\\NAS01\backups\datos" /MIR /ZB /COPY:DAT /DCOPY:T /R:2 /W:5 /MT:16 /NP /TEE /LOG+:"C:\logs\robocopy.log"
⚠ /MIR elimina en el destino todo lo que no exista en el origen. Prueba primero con /L (solo listar).

Qué problema resuelve

Los flags de Robocopy son crípticos y un /MIR mal usado borra datos en el destino.

Robocopy (Robust File Copy) es la herramienta de copia de archivos incluida en Windows desde Windows Vista, diseñada para replicar carpetas completas de forma resiliente ante interrupciones de red, algo que el explorador de archivos o `xcopy` no garantizan. Este generador de comandos Robocopy construye la línea exacta según el escenario (copia simple, espejo, solo diferencias, con reintentos) explicando qué hace cada modificador para evitar el error más frecuente: usar `/MIR` sin entender que puede borrar archivos en destino.

Diferencia entre copiar, sincronizar y crear espejo

Robocopy sin modificadores adicionales copia solo archivos nuevos o modificados desde el origen, dejando intactos los archivos del destino que no existan en origen. El modificador /MIR (mirror) va más allá: convierte el destino en una réplica exacta del origen, lo que incluye borrar del destino cualquier archivo que ya no exista en origen. Confundir estos dos modos es la causa número uno de pérdidas de datos accidentales con Robocopy en entornos corporativos.

/MIR, el modificador más peligroso y más útil

/MIR equivale a /E (copiar subdirectorios incluidos los vacíos) más /PURGE (borrar en destino lo que no existe en origen). Es la opción correcta para backups incrementales donde el destino debe reflejar exactamente el estado actual del origen, pero un error de dirección (invertir origen y destino por accidente) puede borrar meses de archivos en segundos. Antes de ejecutar /MIR en producción, hazlo primero con /L (list only, modo simulación) para ver qué se borraría sin ejecutar el cambio realmente.

Reintentos y tolerancia a fallos de red

Por defecto, Robocopy reintenta un millón de veces con 30 segundos de espera entre intentos si un archivo está bloqueado o la red falla momentáneamente, lo cual puede colgar un script durante horas. Para trabajos automatizados nocturnos sobre redes fiables, ajusta a valores razonables como /R:3 /W:5 (3 reintentos, 5 segundos de espera), reduciendo drásticamente el tiempo que un script queda bloqueado ante un fallo puntual sin renunciar a cierta tolerancia a fallos.

Multihilo con /MT para acelerar copias masivas

El modificador /MT:n activa copia multihilo, con hasta 128 hilos simultáneos (por defecto 8 si se usa /MT sin número). En redes con muchos archivos pequeños, esto puede multiplicar la velocidad de transferencia varias veces respecto a la copia secuencial por defecto, porque aprovecha el paralelismo en lugar de esperar a que cada archivo termine antes de empezar el siguiente. En enlaces con ancho de banda limitado y pocos archivos grandes, el beneficio es menor y puede incluso saturar la red.

Registro y niveles de detalle del log

/LOG:archivo.txt sobrescribe el log en cada ejecución, mientras que /LOG+:archivo.txt añade al final sin borrar el historial previo, útil para auditorías de sincronización recurrente. Los modificadores /NP (sin mostrar progreso porcentual, reduce el tamaño del log drásticamente) y /NDL (sin listar directorios) son imprescindibles en tareas programadas nocturnas donde el log de una copia masiva puede alcanzar cientos de MB si se deja con el detalle completo por defecto.

Excluir archivos y carpetas con XF y XD

/XF *.tmp *.log excluye archivos por patrón de nombre, y /XD node_modules .git excluye carpetas completas por nombre exacto, muy útil al sincronizar proyectos de desarrollo sin arrastrar dependencias regenerables. Combinar estas exclusiones con /MIR es esencial para no borrar accidentalmente carpetas de caché legítimas que existen solo en destino, así que conviene revisar con /L cualquier combinación nueva antes de aplicarla sin supervisión.

Casos de uso comunes

  • Sincronizar una carpeta de trabajo local con un servidor de archivos cada noche.
  • Migrar el contenido completo de un servidor de archivos antiguo a uno nuevo preservando permisos.
  • Hacer backup incremental de una carpeta de proyectos excluyendo node_modules y archivos temporales.
  • Replicar una carpeta compartida entre dos oficinas conectadas por VPN con reintentos ajustados.
  • Programar una tarea nocturna de espejo con log acumulativo para auditar cambios diarios.

Buenas prácticas

  • Prueba siempre /MIR primero con /L (list only) antes de ejecutarlo en producción.
  • Ajusta /R y /W a valores bajos (R:3 W:5) en redes fiables para evitar bloqueos largos.
  • Usa /MT para acelerar copias de muchos archivos pequeños en redes rápidas.
  • Excluye carpetas regenerables (node_modules, .git, caché) con /XD para no perder tiempo ni espacio.
  • Registra siempre con /LOG y revisa el código de salida de Robocopy, que no sigue la convención estándar de 0=éxito.

Preguntas frecuentes

¿Cuál es la diferencia entre /E y /MIR?

/E copia subcarpetas incluidas las vacías; /MIR hace lo mismo pero además elimina en destino lo que ya no existe en origen.

¿Cómo hago una prueba en seco?

Añade /L al comando: Robocopy listará lo que haría sin copiar ni borrar nada.