Se connecter avec
S'enregistrer | Connectez-vous

Demande de commande MS-DOS

Dernière réponse : dans Programmation

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.

Autres pages sur : demande commande dos

Lassé par la pub ? Créez un compte

fox92 a dit :
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.


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++
Expert Programmation

ç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.

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.

Expert Programmation

(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 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 \ !!!!!

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

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....
Expert Programmation

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 :

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

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...

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....
Expert Programmation

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 :
  1. FOR /D %I IN (*) DO (
  2. FOR /D %J IN ("%~fI\*") DO (
  3. CD %J
  4. ECHO Dossier courant : %CD%
  5. ECHO Fichiers à déplacer :
  6. DIR *.mp3
  7. ECHO.
  8. MOVE *.MP3 ..
  9. )
  10. )
Lassé par la pub ? Créez un compte