Je voudrais utiliser xcopy
pour déplacer, pas pour copier des fichiers sur un réseau avec l'indicateur Verify. Je n'ai pas pu trouver un interrupteur sur xcopy pour déplacer des fichiers, est-ce que xmove
je peux utiliser cela verify
?
Pour le moment, j'utilise xcopy /D /V
mais je dois me débarrasser des fichiers à la source uniquement lorsqu'il est vérifié qu'un fichier a été copié avec succès vers la destination.
/v
ne garantit pas qu'un fichier a été correctement écrit: les caches de disque et de système d'exploitation signifient qu'un fichier dans un cache d'écriture sera récupéré à partir de là avant d'avoir été validé avec succès. La seule option sûre consiste à effectuer une copie et à planifier une vérification et une suppression à une date ultérieure. Heuristiquement, je dirais que 5 minutes seraient suffisantes, mais il n'y a pas de règle stricte et rapide: cela dépend de l'activité du disque et de la taille des caches (je parle comme celui qui a rencontré des échecs d'écriture en cache).Réponses:
Vous devriez vérifier
robocopy
, il est beaucoup plus puissant quexcopy
. Vous pouvez facilement déplacer des fichiers avec/MOV
ou/MOVE
.Pour déplacer des fichiers uniquement (supprimer de la source après la copie)
Pour déplacer des fichiers et des répertoires (supprimer de la source après la copie)
http://ss64.com/nt/robocopy.html
la source
verify
aussi loin que je puisse voir./MOVE : Move files and dirs (delete from source after copying)
. S'il ne copie pas, il ne supprimera pas la source.verify
. Je ne vois rien dans les informations de robocopy indiquant qu'il vérifie réellement les deux tailles de fichiers pour s'assurer qu'il n'a pas été simplement déplacé mais déplacé correctement.Vous pouvez utiliser un fichier de
Xcopy
commandes pour exécuter votre commande avec la vérification, suivie d'une vérification du niveau d'erreur renvoyé par Xcopy pour déterminer si les fichiers ont été copiés avec succès ou non. Si tel est le cas, supprimez la source.De la documentation Xcopy :
Exemple de lot:
la source
errorlevel
encore du travail si je fais:dir args && xcopy args >> logfile.txt
? Ou seraerrorlevel
le résultat dedir
?if errorlevel 0
Déclenche TOUJOURS. Parce qu'il vérifie vraimentif errorlevel >= 0
, vous devriez plutôt vérifier le cas d'erreurif errorlevel 1 ( ... failure case ... ) else ( ... success case ... )
. Ou, si vous préférez le styleif not errorlevel 0 (... success case ... )
Ou, si vous préférez le styleif %ERRORLEVEL% EQU 0 ( ... success case ... )