Copier les fichiers des sous dossiers dans le dossier parent

Copier les fichiers des sous dossiers dans le dossier parent - Shell/Batch - Programmation

Marsh Posté le 16-09-2006 à 14:08:06    

J'ai besoin dans un fichier batch d'une (ou plusieurs) ligne(s) de commande permettant de copier tous les fichiers contenus dans les sous-dossiers vers le dossier parent, sachant que le nom des sous-dossiers est inconnu, et je n'arrive pas à trouver comment le faire...
 
Par exemple, j'ai l'arbologie suivante:
C:\
 +Dossier_parent
    +Sous_dossier1
       +fichier1.txt
       +fichier2.txt
    +Sous_dossier2
       +fichier3.txt
 
Je connais seulement l'adresse du dossier parent, mais pas le nom des sous dossiers ni celui des fichiers...
 
Si vous pouvez m'orienter, merci d'avance


Message édité par batchman le 16-09-2006 à 14:11:02
Reply

Marsh Posté le 16-09-2006 à 14:08:06   

Reply

Marsh Posté le 16-09-2006 à 14:18:12    

exécute la commande dir dans le répertoire parent et récupère son résultat ensuite tu peux aller dans tous les sous dossiers et refaire le même pour récupérer le nom des fichiers.


---------------
Instagram - Mon PVT en Australie.
Reply

Marsh Posté le 16-09-2006 à 14:28:46    

Ou en plus simple, dir /s puis idem : traitement ligne par ligne du résultat (for /? pour plus d'infos).

Reply

Marsh Posté le 16-09-2006 à 15:31:04    

LePhasme, je sais bien que je peux connaitre les noms des fichiers et des dossiers avec la commande dir, mais ce que je veux c'est l'automatiser, puisque ces noms de fichiers et de dossiers varient d'un PC à l'autre...

Reply

Marsh Posté le 20-09-2006 à 14:23:54    

N'y a-t-il personne qui puissse m'aider ???
J'ai vraiment besoin d'une réponse j'suis bloqué dans mon script...
 
La question est simple, peut-on rabattre tous les fichiers d'un sous-dossier vers un dossier parent sans connaitre le nom du sous dossier ?!?
 
Si qqn a qqch à me propose, même une piste, merci.

Reply

Marsh Posté le 20-09-2006 à 14:52:46    

La commande suivante déplace tous les fichiers de tous les sous-répertoires dans le répertoire en cours :

for /f %d in ('dir /a:d /b') do move %d\* .


Lorsqu'elle est utilisée dans un batch, il faut doubler les caractères % :

for /f %%d in ('dir /a:d /b') do move %%d\* .

Reply

Marsh Posté le 23-09-2006 à 18:39:27    

Merci aigles, mais j'ai un problème avec ta commande for, les valeurs prises successivement par %d (ou %%d dans un batch) sont les noms de répertoires de la racine et non de mon dossier parent...

Reply

Marsh Posté le 23-09-2006 à 19:49:56    

J'ai trouvé toujours avec la boucle for une solution :  
 

dir /a /a:d /b > dir.txt
FOR /F %%A IN (dir.txt) DO move %%A\*.*
del dir.txt


 
Merci à tous de m'avoir orienté, c'est pas très beau comme code mais ça marche ;) !!!


Message édité par batchman le 23-09-2006 à 19:51:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed