Certains posters ci-dessus ont manqué la subtilité du masque de bits. En particulier, paradroid n'a pas compris que le niveau d'erreur 3 indique une copie complètement réussie.
Notez que le bit 0x01, s'il est activé, indique que certains fichiers ont été copiés même s'il y a eu d'autres échecs. Ainsi, tous les niveaux d'erreur impairs indiquent toujours qu'au moins quelques fichiers ont été copiés. Notez également que le bit 0x02 indique simplement qu'il y a des fichiers à la destination qui ne sont pas présents à la source. Cela se produira si le commutateur /E est utilisé et que des fichiers ont été supprimés de la source depuis qu'une copie précédente a été prise. Cela ne devrait pas se produire si le commutateur /MIR est utilisé car il devrait supprimer les fichiers à la destination pour refléter la source (mais je ne l'ai pas testé).
Ainsi, les niveaux d'erreur 1 et 3 indiquent une copie réussie des fichiers sans erreur. De même, les niveaux d'erreur 0 ET 2 indiquent que la destination est à jour et qu'aucun fichier n'a été copié.
Pour ce que ça vaut, je suis arrivé à ce qui suit pour ma sauvegarde simple :
if errorlevel 16 echo Backup failed - see reason above & goto done
if errorlevel 8 echo All is not well - backup incomplete & goto done
if errorlevel 4 echo All is not well - some files were mismatched & goto done
if errorlevel 3 echo Backup completed successfully & goto done
if errorlevel 2 echo Backup already up to date - no files copied & goto done
if errorlevel 1 echo Backup completed successfully & goto done
if errorlevel 0 echo Backup already up to date - no files copied & goto done
J'ai choisi de ne pas me préoccuper des fichiers "supplémentaires".
Je n'ai aucune idée de la nature de l'erreur "mismatched" car elle ne s'est pas encore produite, mais je l'ai prévue au cas où.