テクノロジー · 実用ガイド
Robocopy はコピー成功でも終了コード 1?コピーではなく CI 境界を直す
Robocopy の 0–7 は完了結果、8 以上はコピー失敗です。元のコードとログを直ちに保存し、batch、PowerShell、Jenkins の境界だけで変換します。

Robocopy のコード 1 は選択したファイルのコピー成功を意味しますが、Jenkins は通常、非ゼロを失敗として扱います。
直後に元の値を保存し、8 未満を完了、8 以上を失敗として、コピー概要とログを残します。
元の結果をすぐ保存
Robocopy の直後に %ERRORLEVEL% または $LASTEXITCODE を保存します。別の外部 command が値を上書きできます。
copied、FAILED、Mismatch、Extras の summary を保持します。コードは分類、log は原因の証拠です。
0–7 と 8+ を分類
0 は同期済み、1 はコピー成功、2–7 はコピー失敗なしの組合せです。/MIR では extra と mismatch を確認します。
失敗境界は 8 です。非ゼロ全体や狭い 0–3 規則を使いません。
cmd と PowerShell で変換
batch では rc を保存し、rc GEQ 8 なら元の値、そうでなければ 0 を CI に返します。
PowerShell では $LASTEXITCODE を保存して log に出し、8 未満なら 0、8 以上なら rc を返します。
Jenkins で失敗を隠さない
Jenkins の Windows step は通常非ゼロで失敗します。returnStatus: true で比較用の値を受け取れます。
8 未満は CI 成功にできますが log は保持し、8 以上は元の値とともに失敗させます。
コピーを検証して記録
source、destination、件数、代表ファイルを確認します。/MIR や /PURGE の削除は成功コードだけでは安全と証明できません。
command、options、元のコード、CI code、log location を記録し、異常なら停止します。
