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
7 réponses
-
Bonjour,
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 -
Bonjour,
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.
-
-
hello
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.-
-
-
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 -
-
-
Voilà, j'ai mis 1/4 d'heure pour pondre le code en Python.
A priori , il est portable sur n'importe quelle plateformefrom 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 -
d'où télécharges-tu python pour Windows ?
-
ben...
https://www.python.org/ -
-