2014-09-12 7 views
0

J'utilise ce qui suit mais il ne fait que déplacer les fichiers et non les dossiers dans le dossier source. Y at-il quelque chose que je puisse ajouter?Fichier batch pour déplacer des fichiers et des dossiers dans un dossier vers un autre dossier

move "C:\source\*" "C:\destination\" 
+0

vous devez utiliser xcopy – Donal

+0

mais ne pas utiliser cette copie au lieu de déplacer? Je fais cela pour déplacer de très gros fichiers vidéo –

+0

déplacer "C: \ source \ *" "C: \ destination \" ne déplace que les fichiers et non les dossiers –

Répondre

1
@echo off 
    setlocal enableextensions disabledelayedexpansion 

    set "source=c:\source" 
    set "target=c:\destination" 

    (if not exist "%target%\" md "%target%") && (
     pushd "%source%" && (
      for /f "delims=" %%a in ('dir /a /b *') do move "%%a" "%target%\" 
      popd 
     ) 
    ) 

Assurez-vous que le dossier cible existe, puis, si le dossier source est accesible, changer de répertoire actif dans le dossier source et pour chaque élément à l'intérieur, exécuter une opération de déplacement dans le dossier cible

+0

@ Firefoxidrive, vous avez raison, le code mis à jour. –

1

Ceci est une autre manière: testez-le d'abord sur des dossiers échantillons.

robocopy "C:\source" "C:\destination" /move /s 

EDIT: copies Robocopy les fichiers et puis supprime l'original, donc prendra beaucoup de temps pour les gros fichiers, même si les emplacements source et cible se trouvent sur le même disque dur.

+0

Le problème avec 'robocopy' dans ce cas sont les gros fichiers (à partir de commentaires). 'robocopy' aide les états qui déplacent les opérations à exécuter une copie puis une suppression. –

+0

@MCND Vous êtes sur. Je suis surpris aussi parce que les gars qui ont écrit robocopy sont cluey. – foxidrive

Questions connexes