Tecnología · GUÍA PRÁCTICA
¿Robocopy devolvió código 1 aunque copió los archivos? Corrige el límite de CI
Robocopy usa 0–7 para resultados completados y 8 o más para fallos. Captura el código nativo, conserva el registro y traduce solo en el límite de batch, PowerShell o Jenkins.

El código 1 de Robocopy significa que los archivos seleccionados se copiaron bien, pero Jenkins suele tratar cualquier estado distinto de cero como fallo.
Guarda el valor inmediatamente: menos de 8 es un resultado completado; 8 o más es fallo. Conserva también el resumen y el registro.
Captura primero el resultado nativo
Guarda %ERRORLEVEL% o $LASTEXITCODE justo después de Robocopy; otro proceso puede sobrescribirlo.
Conserva copied, FAILED, Mismatch y Extras. El código clasifica; el registro explica el resultado.
Clasifica 0–7 y 8+
0 indica que ya estaba sincronizado, 1 una copia correcta y 2–7 combinaciones completadas sin fallo de copia. Con /MIR revisa extras y diferencias.
Usa 8 como límite de fallo. No uses 'cualquier no cero' ni una regla 0–3 demasiado estrecha.
Traduce en cmd y PowerShell
En batch guarda rc; si rc GEQ 8 devuelve el valor original, si no devuelve 0 a CI.
En PowerShell guarda $LASTEXITCODE, escríbelo en el registro y devuelve 0 si es menor que 8; en otro caso devuelve rc.
No ocultes fallos en Jenkins
Jenkins falla normalmente los pasos Windows con un estado no cero. returnStatus: true entrega el código para compararlo.
Para menos de 8 permite éxito de CI pero conserva el log; para 8 o más falla y muestra el valor nativo.
Verifica y registra la copia
Comprueba origen, destino, contadores y un archivo representativo. /MIR o /PURGE puede borrar extras; un código sin fallo no demuestra que la política era segura.
Registra comando, opciones, código nativo, código CI y ubicación del log. Detente si rutas o recuentos son inesperados.
