Demande de commande MS-DOS

fox92

Habitué
Salut tout le monde,
Je voudrais juste trouver une commande ms-dos pour trier des dossiers et fichiers, je m'explique:
voici mon arboresence de dossiers :

/
|_dossier 1
| |_ss-dossierA
| |_fichier.mp3
|
|_dossier 2
| |_ss-dossierB
| |_fichier.mp3
|
|_dossier 3
| |_ss-dossierC
| |_fichier.mp3
.
.
.

Je voudrais donc qu'une commande MS-Dos l'arborescence précédente en celle-ci :


/
|_dossier 1
| |_fichier.mp3
|
|_dossier 2
| |_fichier.mp3
|
|_dossier 3
| |_fichier.mp3
.
.
.

Donc pour résumé, je voudrais juste supprimer les sous-dossier intermédiaire.

et ceci le plus "automatiquement" possible car j'ai environ 1500 dossier dans ma racine...
Merci de m'aider.
 

sk_sex@rt

Nouveau membre


Salut à toi mon premier post sera pour toi lol

Alors une commande simple tu te met dans le dossier racine ( là ou sont tout les fichiers) et tu tapes :

"dir /A-D /S"

Pour l'explication dir : afficher le contenu d'un repertoire
/A : option pour selectionner un type de contenue
/A-D : selection de tout type de contenue SAUF les repertoires ( D = Directory = Repertoire en francais)
/S : Parcourir les sous dossier des dossier jusqu'a temps de trouver un dossier vide ( donc tout tes dossier)

Voilà j'esperes que je t'ai aidé sinon hésite pas à me dire

A++
 

batchy

Grand Maître
ça résoud pas trop son problème ...

si t'est sous un noyau NT, alors faut que tu utilise un for qui te permet d'itérer dans chaque répertoire. ensuite un truc du genre move */*.* . devrai sufire.
 

fox92

Habitué
Merci pour vos réponses mais j'ai déja regardé l'aide du FOR mais il n'est vraiment pas très explicatif...
En décryptant un peu j'arrive à cette commande :

FOR /D %e IN <c:/RépertoireRacine/*/*> DO MOVE *.* c:/RépertoireRacine/*/*/../

Cette commande est élaborée à partir de l'arboresence que je vous ai donné précédement.
Avec %e le nom de mon ensemble de fichier ("e" pris au hasard)

qu'en pensez vous ?

PS : je suis sous vista, donc quelques commandes MS-DOS diffèrents.

 

zeb

Modérateur
(Fais comme moi pour présenter tes lignes, utilise la balise [ fixed]. Si tu n'as aucune idée de ce que je raconte, clique sur
Vous devez être connecté pour voir les images.
de mon message pour voir comment j'ai fait. Ca évitera les :/ parasites )

Bon, alors si tu veux qu'on aide, il va falloir savoir lire. Tu confonds < avec (, > avec ), / avec \ !!!!!

[fixed]FOR /D %e IN (.\RépertoireRacine\*) DO (
CD %e
MOVE *.mp3 ..
)[/fixed]devrait suffire.
 

fox92

Habitué
T'as commande m'a l'air pas trop mal mais le seul soucis c'est que losque que tu fais " CD %e " tu ne te touve pas dans le sous dossier A ou B ou C ... tu est dans le dossier d'avant. donc le MOVE ne marche pas. j'ai essayé plein de méthode en rajoutant \*\ dans les chemins pour atteindre les fichiers *.mp3 mais sans succès.
As-tu une solution pour avancé encore d'un dossier ? Encore merci....
 

zeb

Modérateur
Ah. Donc tu veux faire dans le "sous dossier A ou B ou C" la même chose que "dans le dossier d'avant". Ben fais-le :

Code:
FOR /D %e IN (*) DO (
    FOR /D %f IN ("%e\*") DO (
        CD %f
        MOVE *.MP3 ..
        CD ..\.. 
    )
)
La ligne 5 n'est obligatoire que si tes chemins sont relatifs. S'il sont absolus, point besoin de cette ligne.
 

fox92

Habitué
Bon, là, on y est presque. Il se déplace dans les bons dossiers mais le MOVE n'est pas fait car il me répond que le nom de fichier ou de dossier n'est pas correcte. Pourtant il n'y a que des fichiers *.mp3 a déplacé je ne vois pas comment il fait pour pas les trouver puisqu'il se déplace dans les bons répertoires...

En quoi consiste le pushd et popd ? Cela peut être nteressant...
 

fox92

Habitué
Oui merci je commence à comprendre pour l'aide de MS-DOS mais je voudrais savoir pourquoi le MOVE ne marche pas alors qu'il se déplace dans les bons dossier. Et pour PUSHD et POPD vous pouvez me dire quelle ligne de commande taper en rapport avec mes dossiers biensure car je ne vois pas comment les utiliser... merci pour votre aide....
 

zeb

Modérateur
Bref, tu veux qu'on te le fasse !

Je rappelle à tout hasard que cette catégorie du forum est dédiée à l'entraide entre développeurs (novices acceptés). Elle n'est pas une SSII gratuite. :o

------------------------------

Ce que propose KangOl est un autre point de vue, sans doute meilleur, pour notre culture personnelle à tous. C'est à toi de le développer.

------------------------------

Bon et comme ça :
Code:
FOR /D %I IN (*) DO (
    FOR /D %J IN ("%~fI\*") DO (
        CD %J
        ECHO Dossier courant : %CD%
        ECHO Fichiers à déplacer :
        DIR *.mp3
        ECHO.
        MOVE *.MP3 ..
    )
)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 080
Membres
1 586 395
Dernier membre
franckorus
Partager cette page
Haut