Commande batch Windows pour déplacer tous les dossiers d'un répertoire avec des exceptions
Je suis en train d'écrire un fichier de commandes Windows qui me permettra de déplacer tous les répertoires dans un répertoire source dans un répertoire cible qui existe au sein de ce répertoire source.
Évidemment, ma commande de déplacement avec la nécessité de s'appliquer uniquement à des répertoires et aussi exclure le répertoire cible en cours de traitement.
Est-ce possible avec un Windows commande de traitement par lots?
source d'informationauteur William Owen
Vous devez vous connecter pour publier un commentaire.
Robocopy (présent dans les versions récentes de windows ou téléchargeables à partir de la WRK) peut le faire, il suffit d'utiliser la
/xd
commutateur pour exclure le répertoire cible de la copie;Qui ne fonctionne pas - vous recevrez un message d'erreur vous indiquant que le répertoire cible est à l'intérieur du répertoire source ou alors, même si vous l'avez explicitement exclure le répertoire cible. Ce que vous pouvez faire est de déplacer les répertoires vers un emplacement temporaire qui n'est pas en vertu de la source, et de les déplacer dans la cible.
BTW, à l'aide de la
move
commande ne vous laisseront pas de spécifier les dossiers à exclure. Pour cela, vous pouvez utiliserxcopy
mais notez qu'il copie les dossiers, par opposition à déplacer. Si ce qui compte, vous pouvez supprimer ce que vous voulez par la suite, assurez-vous de ne pas supprimer la cible dir, qui est à la source de dir...Avec robocopy inclus avec Windows 7, j'ai trouvé le XD /option n'a pas empêché le dossier source de aussi déplacé.
Solution:
Cette boucle par le haut niveau des dossiers et des pistes de robocopy pour chaque.
NB: Robocopy mentionnées ci-dessus à l'aide de l' /déplacer drapeau de copier les fichiers et les supprimer à partir du dossier source plutôt que de déplacement les fichiers. Cela peut être critique si le déplacement d'un grand nombre de fichiers d'un endroit à un autre sur le même disque (parce que se déplacer est quasi-instantanée, alors que la copie est beaucoup plus lent opération)
Cela fonctionne pour moi: