J'ai essayé de faire la même chose à partir d'un partage réseau.
SET MoveDirSource=\\Server\Folder
SET MoveDirDestination=Z:\Folder
Voici mes résultats et la solution des tests sur une machine Windows 7.
Suggestion:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E
Problème: déplace le dossier source.
Suggestion:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E /XD "%MoveDirSource%"
Problème: déplace toujours le dossier source.
Suggestion:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOV /E
Problème: laisse la structure de dossiers vide derrière dans le dossier source.
Solution de travail:
MKDIR "%MoveDirDestination%"
FOR %%i IN ("%MoveDirSource%\*") DO MOVE /Y "%%i" "%MoveDirDestination%\%%~nxi"
FOR /D %%i IN ("%MoveDirSource%\*") DO ROBOCOPY /MOVE /E "%%i" "%MoveDirDestination%\%%~nxi"
Les deux premières lignes déplacent les fichiers de niveau supérieur, la troisième déplace les dossiers. Notez que le double %% est destiné à être utilisé dans un fichier de commandes, le collage dans une ligne de commande doit être modifié en un seul pourcentage.
~ nxi dans la destination est une VARIABLE DE SUBSTITUTION (Voir POUR /?) où ~ nxi représente le nom et l'extension de l'élément en cours de bouclage.
Par défaut, Robocopy tente de RÉESSAYER UN MILLION de fois et D'ATTENDRE 30 SECONDES entre chaque essai, vous pouvez donc ajouter / R: 1 / W: 1 aux arguments de la robocopie.