J'envisage d'utiliser robocopy pour déplacer des fichiers et des dossiers d'un répertoire sur un serveur vers un répertoire sur un disque dur, à l'aide de la commande suivante,
robocopie [source] [destination] /e /move /xo
En cas de conflit de nom de fichier, je comprends qu'il faut remplacer les fichiers sur le disque dur uniquement s'il est plus récent (ou exactement du même âge ?), puis supprimer les fichiers qui ont été copiés.
Idéalement, j'aimerais que le répertoire source soit vidé de ses fichiers, mais je soupçonne un problème : si un fichier n'est pas transféré (il est peut-être en cours d'utilisation ou une version plus récente existe dans le répertoire de destination), il ne sera pas supprimé.
Dans le cas d'une erreur réelle dans le processus de copie (par exemple, si robocopy refuse de déplacer un fichier en cours d'utilisation), je ne peux pas simplement ajouter une commande ultérieure pour supprimer l'ensemble du répertoire source, car cela pourrait entraîner la perte de données qui n'ont pas été transférées.
J'envisage d'utiliser ce fichier comme un fichier batch qui sera exécuté régulièrement par Windows en tant que tâche planifiée.
Ma question est donc la suivante : existe-t-il un moyen simple et automatisé pour que robocopy supprime les fichiers qui ont été transférés correctement (ce qu'il fait déjà) ou ceux pour lesquels des copies plus récentes existent déjà dans la destination (ce qu'il ne fait pas actuellement), tout en conservant les fichiers qui n'ont pas été transférés en raison d'une autre erreur (par exemple, permissions, fichier en cours d'utilisation, etc.)
Existe-t-il un moyen plus simple de procéder ?