Robocopyの戻り値を知りたい

ファイルのコピーやフォルダの同期などのバッチファイルを以前まではXcopyコマンドを利用して作成していたのですが、
どうやらWindows2008ではXcopyではなく、Robocopyの使用を推奨しているようです。


Windows2003でのXcopy /?の実行結果


Windows2008でのXcopy /?の実行結果


そこでRobocopyを使用してバッチファイルを作成し始めたのですが、Robocopyの終了コードが良く分かりませんでした。
JP1などのジョブ管理ツールなどから実行すると、デフォルトの設定ではリターンコードが0以外が返ってくるとエラーとなります。
Robocopyで作成したバッチファイルが成功したり、失敗したりが続いたので調べることに。

Webで調べるとリソースキッドの中にドキュメントがあるとのことなので、以下のURLからリソースキッドをダウンロードしました。
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en
リソースキッドをインストールすると、インストールフォルダにrobocopy.docというMS WORDのファイルがあります。
その中にReturn Codeに関する表がありました。

Hex Bit Value Decimal Value Meaning If Set
0x10 16 Serious error. Robocopy did not copy any files. This is either a usage error or an error due to insufficient access privileges on the source or destination directories.
0x08 8 Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded). Check these errors further.
0x04 4 Some Mismatched files or directories were detected. Examine the output log. Housekeeping is probably necessary.
0x02 2 Some Extra files or directories were detected. Examine the output log. Some housekeeping may be needed.
0x01 1 One or more files were copied successfully (that is, new files have arrived).
0x00 0 No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized.


上の表によると、コピーが正常に終了した場合は1が返ってくるようですね。。。
もう少し細かい判定をしたければ…ということで、以下のような判定用のバッチも記載されていましたので、貼っておきます。

if errorlevel 16  echo  ***FATAL ERROR***  & goto end
if errorlevel 15  echo FAIL MISM XTRA COPY & goto end
if errorlevel 14  echo FAIL MISM XTRA      & goto end
if errorlevel 13  echo FAIL MISM      COPY & goto end
if errorlevel 12  echo FAIL MISM           & goto end
if errorlevel 11  echo FAIL      XTRA COPY & goto end
if errorlevel 10  echo FAIL      XTRA      & goto end
if errorlevel  9  echo FAIL           COPY & goto end
if errorlevel  8  echo FAIL                & goto end
if errorlevel  7  echo      MISM XTRA COPY & goto end
if errorlevel  6  echo      MISM XTRA      & goto end
if errorlevel  5  echo      MISM      COPY & goto end
if errorlevel  4  echo      MISM           & goto end
if errorlevel  3  echo           XTRA COPY & goto end
if errorlevel  2  echo           XTRA      & goto end
if errorlevel  1  echo                COPY & goto end
if errorlevel  0  echo    --no change--    & goto end
:end

なるほど。。。