Error 87 en Robocopy: Parámetros incorrectos y enlaces simbólicos

La herramienta Robocopy es extremadamente potente para la copia de archivos a gran escala en Windows, pero también puede ser bastante caprichosa cuando se encuentra con enlaces simbólicos o junctions. Uno de los errores más frustrantes que pueden surgir durante este proceso es el ERROR 87 (0x00000057), que indica que «The parameter is incorrect».

Vista de una ventana de terminal con el código de error 87 destacado en rojo.
El error ERROR 87 aparece claramente en la consola al ejecutar el comando.

Aunque el mensaje de error 87 suele apuntar a una sintaxis incorrecta en la línea de comandos, es muy común que aparezca justo cuando se está intentando procesar un archivo especial. En este artículo, desglosamos las causas detrás de este error y cómo diagnosticarlo.

Entendiendo los symlinks y junctions

Antes de entrar en el código del error, es fundamental entender qué estamos enfrentando en el sistema de archivos. Cuando Robocopy encuentra enlaces simbólicos o puntos de unión (junctions), puede entrar en conflicto con su lógica de copia.

Diagrama técnico con rutas, flechas e iconos de archivos y enlaces.
Esquema visual explicativo sobre cómo funcionan los symlinks y junctions en el sistema de archivos.

Si Robocopy intenta seguir un enlace hacia una ubicación que ya no existe, el sistema puede devolver errores como el ERROR 2, donde no se encuentra el archivo. Por otro lado, si la opción utilizada hace que la herramienta intente copiar el contenido del destino en lugar de solo el enlace mismo, es probable que encuentre un conflicto.

Códigos de error comunes durante el escaneo

Es útil tener a mano los códigos más frecuentes para no perder el tiempo:

  • ERROR 2 (0x00000002): No se encuentra el archivo.
  • ERROR 3 (0x00000003): No se encuentra la ruta.
  • ERROR 5 (0x00000005): Acceso denegado.

Desglosando el ERROR 87

Volvamos al problema principal: el ERROR 87 (0x00000057). Este código significa simplemente que hay un parámetro incorrecto en la línea de comandos.

Terminal mostrando el número de versión de Robocopy.
Salida del comando para verificar la versión de Robocopy instalada.

Si aparece «al escanear symlinks», las causas más comunes suelen ser:

  • Estás usando la opción /SL en una versión antigua de Robocopy que no la soporta.
  • Hay una combinación de opciones incompatible entre sí.
  • La ruta tiene una sintaxis incorrecta, como comillas mal colocadas o espacios extraños.

Una forma rápida de verificar esto es ejecutar el comando robocopy /?. Si la opción /SL no aparece en la lista de ayuda, tu versión probablemente no la soporta.

Análisis del comando del usuario

En un caso reciente, se recibió el siguiente comando:

ROBOCOPY D:Descargas P:TransporteDescargas /S /M /FP /NS /NDL /XO  /MAXAGE:3

A primera vista, los parámetros parecen válidos. Sin embargo, el uso de /MAXAGE:3 es un punto crítico a investigar.

Diagrama con dos flujos de tiempo mostrando diferentes momentos de fallo.
Comparativa visual entre un error inmediato y uno que ocurre al encontrar un symlink.

Un detalle crucial para el diagnóstico es entender cuándo aparece el error. ¿El ERROR 87 ocurre inmediatamente al ejecutar el comando, o aparece después de listar algunos archivos y justo cuando llega a un enlace simbólico?

Esa diferencia cambia bastante el diagnóstico: si aparece solo al encontrarse con un symlink, podría tratarse de un bug específico de la versión o de atributos inusuales en el archivo. Si ocurre de inmediato, es casi seguro un problema de sintaxis en los parámetros.