Watch at Ease세상을 읽고, 일상의 답을 찾다.

기술 · 실용 가이드

Robocopy가 복사 성공 후 종료 코드 1? 복사가 아니라 CI 경계를 고치세요

Robocopy의 0–7은 완료 결과이고 8 이상은 복사 실패입니다. 원래 코드와 로그를 즉시 보존하고 batch, PowerShell, Jenkins 경계에서만 변환하세요.

오리지널 편집 일러스트: Robocopy 0, 1–7, 8+를 분류한 원본 그림.
오리지널 편집 일러스트: 원본 그림: 결과를 보존한 뒤 CI 상태로 변환합니다. Watch at Ease

Robocopy 코드 1은 선택한 파일이 성공적으로 복사되었다는 뜻이지만 Jenkins는 보통 모든 nonzero 상태를 실패로 봅니다.

직후 원래 값을 저장하고 8 미만은 완료, 8 이상은 실패로 분류하며 summary와 log를 남기세요.

원래 결과를 즉시 캡처

Robocopy 직후 %ERRORLEVEL% 또는 $LASTEXITCODE를 저장하세요. 다음 외부 command가 값을 덮을 수 있습니다.

copied, FAILED, Mismatch, Extras summary를 보존하세요. code는 분류하고 log는 원인을 설명합니다.

0–7과 8+ 분류

0은 동기 상태, 1은 복사 성공, 2–7은 복사 실패가 없는 완료 조합입니다. /MIR이면 extra도 검토하세요.

실패 경계는 8입니다. 모든 nonzero 또는 좁은 0–3 규칙을 쓰지 마세요.

cmd와 PowerShell 변환

batch는 rc를 저장하고 rc GEQ 8이면 원래 값을, 아니면 0을 CI에 반환합니다.

PowerShell은 $LASTEXITCODE를 저장하고 log에 남긴 뒤 8 미만이면 0, 아니면 rc를 반환합니다.

Jenkins에서 실패 보존

Jenkins Windows step은 nonzero에서 기본 실패합니다. returnStatus: true로 비교할 값을 받을 수 있습니다.

8 미만은 CI 성공으로 바꿔도 log를 보존하고, 8 이상은 원래 값과 함께 실패시키세요.

복사 검증과 기록

source, destination, count와 대표 파일을 확인하세요. /MIR 또는 /PURGE 삭제는 성공 code만으로 안전하지 않습니다.

command, options, 원래 code, CI code, log 위치를 기록하고 이상하면 중단하세요.

오리지널 편집 일러스트: 안전한 Robocopy CI wrapper 결정도.
오리지널 편집 일러스트: 원본 그림: 8 미만 성공, 8 이상 실패와 log 보존. Watch at Ease