Comment puis-je déplacer chaque fichier dans un arbre vers la racine de l'arbre?

J'ai un dossier (appelons-le A) avec beaucoup de sous-dossiers B, C, D, E, qui ont à nouveau des sous-dossiers B1, B2, B3, … C1, C2, C3 …

Comment puis-je utiliser cmd déplacer tous les fichiers de tous les sous-dossiers dans le dossier "racine" A?

Mon poste original a négligé d'inclure l'extension du fichier dans la commande move. %~ni Ni renvoie le nom de base, vous devez utiliser %~nxi pour obtenir le nom de fichier et l'extension! J'espère que vous n'avez pas mangé vos noms de fichiers sur mon compte! (

À partir d'une invite de commande:

 cd /d C:\Path\To\A for /r %i in (*) do @move "%i" "%~nxi" 

Si vous devez nettoyer les dossiers vides par la suite:

 for /d %i in (*) do @rd /s /q "%i" 

Maintenant, si vous avez des conflits de fichiers, vous êtes seul. Vous pouvez ajouter le paramètre /y à la commande move (avant le "%i" ) pour forcer les écrans. Si vous voulez quelque chose de différent, vous aurez besoin d'un autre programme qui peut renommer automatiquement tout pour vous.

En outre, si vous souhaitez utiliser cela dans un fichier batch, modifiez tous les % en %% .

Créez un dossier et copiez tous les autres dossiers, puis cliquez droit sur ce dossier et sélectionnez Rechercher . Dans la zone de recherche, entre *.* .

Cela répertorie tous les fichiers et dossiers. Sélectionnez tous les fichiers que vous voulez dans votre répertoire racine et coupez-les. Accédez à votre répertoire racine et collez tous les fichiers là-bas.

Installez Cygwin (ou un autre environnement Unix pour Windows) et exécutez ce qui suit:

 cd A find . -type f -exec mv {} . \;