Créations sous-répertoires multiples
Gawouelle
-
Gawouelle -
Gawouelle -
Bonjour,
A la racine de mon disque p: j'ai environ 500 dossiers, dans chacun des dossiers se trouve 1 sous dossier nommé DIVERS et plusieurs sous dossiers ayant des noms différents (nom d'entreprise).
J'ai besoin de créer 2 dossiers, nommés TOTO et LULU par exemple, dans chacun des sous dossiers portant le nom d'entreprise, sauf dans le sous dossier divers
en gros il me faut : p:\nom_dossier\nom_rep\TOTO
et p:\nom_dossier\nom_rep\LULU MAIS PAS p:\nom_dossier\DIVERS\
J'ai une partie du script mais le problème c'est que les sous-répertoire ne sont pas créés au bon emplacement, ils se créent dans l'arborescence au même niveau que DIVERS !!!!
@echo off
for /d %%d in (*) do ( mkdir "%%d\TOTO"
)
pause
@echo off
for /d %%d in (*) do ( mkdir "%%d\LULU"
)
pause
Je sais pas comment faire ni même si cela est possible comme les dossiers principaux ont tous des noms différents et les sous répertoires aussi.
Si quelq'un peut m'aider ça m'éviterai de tout faire manuellement pour les 500 dossiers !!! =)
Merci
A la racine de mon disque p: j'ai environ 500 dossiers, dans chacun des dossiers se trouve 1 sous dossier nommé DIVERS et plusieurs sous dossiers ayant des noms différents (nom d'entreprise).
J'ai besoin de créer 2 dossiers, nommés TOTO et LULU par exemple, dans chacun des sous dossiers portant le nom d'entreprise, sauf dans le sous dossier divers
en gros il me faut : p:\nom_dossier\nom_rep\TOTO
et p:\nom_dossier\nom_rep\LULU MAIS PAS p:\nom_dossier\DIVERS\
J'ai une partie du script mais le problème c'est que les sous-répertoire ne sont pas créés au bon emplacement, ils se créent dans l'arborescence au même niveau que DIVERS !!!!
@echo off
for /d %%d in (*) do ( mkdir "%%d\TOTO"
)
pause
@echo off
for /d %%d in (*) do ( mkdir "%%d\LULU"
)
pause
Je sais pas comment faire ni même si cela est possible comme les dossiers principaux ont tous des noms différents et les sous répertoires aussi.
Si quelq'un peut m'aider ça m'éviterai de tout faire manuellement pour les 500 dossiers !!! =)
Merci
A voir également:
- La creation de la liste de sous repertoire a échoué
- Liste déroulante excel - Guide
- Creation de compte google - Guide
- Creation de site web - Guide
- Création de compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
7 réponses
Bonjour,
Je partirais plutôt sur deux boucles imbriquées pour ma part :
Xavier
Je partirais plutôt sur deux boucles imbriquées pour ma part :
@echo off for /d %%d in (*) do ( for /d %%s in (%%d\*) do ( mkdir "%%s\LULU" mkdir "%%s\TOTO" ) ) pause
Xavier
radgeur
Messages postés
201
Date d'inscription
Statut
Membre
Dernière intervention
27
ah oui tien tres bonne idée, je n'y avais pas penser, mais ca a de grandes chances de fonctionner.
Gawouelle
Merci bcp, tout fonctionne =)
Gawouelle
en fait j'ai un petit soucis, mes 500 répertoires principaux ont des noms qui contiennent des espaces, tiret... et du coup ça bug avec le script, ça me cré 500 répertoires supplémentaires dans lesquels les répertoires lulu et toto sont créés !!! :S
radgeur
Messages postés
201
Date d'inscription
Statut
Membre
Dernière intervention
27
il faut entourer les adresses de " "
Gawouelle
j'ai pourtant mis les " " autour de chaque chemin
Bonjour,
Je comprend pourquoi mais malheureusement je ne posséde pas de solutions pour le moment a ton problème.
Je comprend pourquoi mais malheureusement je ne posséde pas de solutions pour le moment a ton problème.
ton code m'as l'air fortement complexe
à la rigueur je ne sait pas si cela est possible mais tu pourrais peut-être del les sous-dossier divers dans chaque dossier (je ne sais pas si il y a quelquechose dedans, ou alors les bouger peut-être sinon, et après, tu répertorie effectivement les chemins des nom de dossier entreprise pour créer les documents que tu veut dedans, et après redéplacer les dossiers divers si tu as besoin.
Je sais que ca a l'air farfelue mais je ne m'y connais pas assez en MS-DOS pour te donner d'autres solutions, par contre si tu ne le sais pas je peut te dire, qu'il est inutile de faire 2 boucles pour créer 2 fichiers dans le même dossier, écrire les actions l'une à la suite de l'autre est suffisant et si tu tien à la pause, tu la met dans la boucle juste après tes deux actions.
Voila j'espère que cela t'aideras un peu quand même.
à la rigueur je ne sait pas si cela est possible mais tu pourrais peut-être del les sous-dossier divers dans chaque dossier (je ne sais pas si il y a quelquechose dedans, ou alors les bouger peut-être sinon, et après, tu répertorie effectivement les chemins des nom de dossier entreprise pour créer les documents que tu veut dedans, et après redéplacer les dossiers divers si tu as besoin.
Je sais que ca a l'air farfelue mais je ne m'y connais pas assez en MS-DOS pour te donner d'autres solutions, par contre si tu ne le sais pas je peut te dire, qu'il est inutile de faire 2 boucles pour créer 2 fichiers dans le même dossier, écrire les actions l'une à la suite de l'autre est suffisant et si tu tien à la pause, tu la met dans la boucle juste après tes deux actions.
Voila j'espère que cela t'aideras un peu quand même.
hello
essayer
essayer
@echo off for /f %%d in ('dir /a:d /b ^| find /v "DIVERS" ') do ( mkdir "%%d\TOTO" mkdir "%%d\LULU" ) pause
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Gawouelle,
Avec Python, on peut atteindre ce que l'on veut comme résultat d'un traitement de fichiers ou de dossiers, quelle que soit la complexité voulue pour ce résultat et la complexité des noms et de l'arborescence initiaux.
Python est très bon pour de telles taches.
Je peux t'aider à réaliser ce que tu veux faire si tu consens à utiliser Python.
Si c'est le cas tu peux commencer de regarder cette réponse :
https://forums.commentcamarche.net/forum/affich-23118470-script-pour-deplacer-les-fichiers#7
qui te donneras aussi une idée de l'aisance que procure Python pour atteindre ses objectifs.
Avec Python, on peut atteindre ce que l'on veut comme résultat d'un traitement de fichiers ou de dossiers, quelle que soit la complexité voulue pour ce résultat et la complexité des noms et de l'arborescence initiaux.
Python est très bon pour de telles taches.
Je peux t'aider à réaliser ce que tu veux faire si tu consens à utiliser Python.
Si c'est le cas tu peux commencer de regarder cette réponse :
https://forums.commentcamarche.net/forum/affich-23118470-script-pour-deplacer-les-fichiers#7
qui te donneras aussi une idée de l'aisance que procure Python pour atteindre ses objectifs.
Merci Reivax962.
Bien que, tu t'en doutes, ce ne soit pas le fait d'avoir un -1 qui m'énerve. C'est de voir qu'il y a un !:**%#!§ qui a downvoté pour une raison tordue. Soit contre moi, soit contre Python. Sans aucune explication, c'est niais et lamentable
Pourquoi "hors sujet" ? Si c'est adapté, ce n'est pas hors-sujet.
Soit dit en passant , aucun problème de caractère à débugger en écrivant ce code.
J'ai essayé sur des dossier nommés 'bu du du' et 'oro-oro' , pour créer 'TU - TU' et 'TO _ T ! O' : passé impeccable
Bien que, tu t'en doutes, ce ne soit pas le fait d'avoir un -1 qui m'énerve. C'est de voir qu'il y a un !:**%#!§ qui a downvoté pour une raison tordue. Soit contre moi, soit contre Python. Sans aucune explication, c'est niais et lamentable
Pourquoi "hors sujet" ? Si c'est adapté, ce n'est pas hors-sujet.
Soit dit en passant , aucun problème de caractère à débugger en écrivant ce code.
J'ai essayé sur des dossier nommés 'bu du du' et 'oro-oro' , pour créer 'TU - TU' et 'TO _ T ! O' : passé impeccable
Voilà, j'ai mis 1/4 d'heure pour pondre le code en Python.
A priori , il est portable sur n'importe quelle plateforme
La fonction dossier_dans() renvoie un générateur
A priori , il est portable sur n'importe quelle plateforme
from os import listdir,mkdir from os.path import isdir,islink,join def dossiers_dans(dirpath): return (join(dirpath,x) for x in listdir(dirpath) if isdir(join(dirpath,x)) and not islink(join(dirpath,x)) ) ecr = [] for dossier in dossiers_dans('pp:'): ecr.append(' '+dossier+'\n') for sous_dossier in dossiers_dans(dossier): ecr.append(sous_dossier) if not sous_dossier.endswith('DIVERS'): ecr.append('creating LULU et TOTO dans ' + sous_dossier + '\n') mkdir(join(sous_dossier,'LULU')) mkdir(join(sous_dossier,'TOTO')) ecr.append('\n-------------------------------------\n') print '\n'.join(ecr)
La fonction dossier_dans() renvoie un générateur