2017-05-11 1 views
0

J'essaie de parcourir de manière récursive les dossiers et de déplacer d'un niveau certains fichiers. Tels que PDF & DOC. La structure des dossiers est: Dossier 1 -> dossier 2-> dossier 3 -> dossier (doc) -> * .doc, dossier (mp3) -> * .mp3.Parcourez la structure de répertoires et déplacez les fichiers avec certaines extensions d'un niveau.

J'ai besoin de le changer comme ceci: Dossier 1 -> dossier 2-> dossier 3 -> dossier (doc), * .doc, dossier (mp3), * .mp3.

J'ai donc beaucoup de ces dossiers. Et faites ceci manuellement n'est pas possible.

J'ai essayé script make: v1.0

For /R %%G in (*.doc,*.mp3) do move %%G ../ 

V1.1

For /R %%G in (*.doc,*.mp3) do move %%~nxG ../ 

v1.2

For /R %%G in (*.doc,*.mp3) do (
set B=%%~nxG 
move %%B ../ 

Mais il ne fonctionne pas. Qu'est-ce que je fais mal?

Si je fais manuellement:

dossier CD 1
dossier CD 2
dossier CD 3
dossier CD (doc)
DÉMÉNAGEMENT * .doc ../

Il est des œuvres!

Je serai reconnaissant pour tout conseil!

+2

supprime le '/' final. Citez aussi la variable '%% G' dans la commande move pour pouvoir gérer les espaces dans les répertoires et les noms de fichiers' for/R %% G in (* .doc, *. Mp3) déplacez "%% G" ..' – elzooilogico

+0

'Pour/R %% G (* .doc, *. Mp3) déplacez" %% G "" %% ~ PG .. "' Notez que votre référence '..' spécifie _le parent du ** courant ** directory_, pas le parent de chaque fichier! La commande 'for/R' ne modifie pas le répertoire en cours. – Aacini

+0

Merci beaucoup! C'est exactement ce dont on a besoin !!! – Yurok

Répondre

0
For /R %%G in (*.doc,*.mp3) do move "%%G" "%%~PG.." 

Notez que votre .. référence précise le parent du répertoire courant , pas le parent de chaque fichier! La commande for /R ne fait pas pas changer le répertoire courant.