[Batch] Copier des fichiers ayant le meme nom en gardant la structure

Copier des fichiers ayant le meme nom en gardant la structure [Batch] - Shell/Batch - Programmation

Marsh Posté le 26-06-2013 à 18:40:11    

:hello:
 
J'ai un soucis, je veux copier des fichiers ayant le même nom, se trouvant dans des répertoires différents vers un autre dossier.
 
La structure :
c:\test\a\a.txt
c:\test\a\b.txt
c:\test\a\...
c:\test\b\a.txt
c:\test\b\b.txt
c:\test\b\....
c:\test\c\a.txt
c:\test\c\b.txt
c:\test\c\....
 
Je voudrais copier tous les fichiers a.txt vers le dossier c:\test2. Le problème est que les fichiers portent le même nom donc je pensais recréer l'arborescence dans c:\test2 et recopier les fichiers dans les sous répertoires correspondants.
Les différents tests que j'ai fait avec les commandes FOR ou Xcopy n'ont rien donné.
 
Une idée?
 
Merci d'avance :jap:


Message édité par charask8 le 26-06-2013 à 18:52:22
Reply

Marsh Posté le 26-06-2013 à 18:40:11   

Reply

Marsh Posté le 26-06-2013 à 19:05:17    

Je connais pas trop le batch Windows mébon, j'ai vu ton appel au secours sur moant :o
Une autre approche si t'as pas trop de volumétrie dans ton répertoire test: tu recopies tout test vers test2, puis tu supprimes tout ce qui n'est pas a.txt
 
C'est un peu bourrin et je sais pas si c'est plus facile à coder, c'est juste une idée comme ça en passant :o


---------------
Il y a quelque chose que je ne comprends pas
Reply

Marsh Posté le 26-06-2013 à 19:12:36    

Merci, j'y ai pensé aussi mais c'est pas aussi simple qu'il n'y parait!
 
Le problème est que j'ai 3go de data en tout et c'est sur un serveur chez un client, je cherche a ne garder que le fichier de chaque repertoire qui m'interresse.

Reply

Marsh Posté le 26-06-2013 à 20:10:21    

essaye en partant sur un truc du genre:

del listeFichiers.txt
for /r "C:\test" %%i in (a.txt) do echo %%i >> listeFichiers.txt
 
rem =======================================================================
for /f "delims=" %%i in ('type listeFichiers.txt') do (insère ta commande de copie ici)


ça te construit la liste des fichiers à copier dans un fichier, puis tu le parcours pour recopier les fichiers 1 par 1. Reste à trouver comment recopier l'arborescence avec, ça doit pas être trop compliqué. Faut que je rentre là :o


---------------
Il y a quelque chose que je ne comprends pas
Reply

Marsh Posté le 27-06-2013 à 11:01:51    

C'est bon j'ai trouvé mais c'est tordu

 

Créer un fichier "exclusion.txt" contenant tout ce que je ne veux pas copier et ensuite executer :
xcopy /e c:\test c:\test2 /exclude:exclusion.txt...

 

Le /e recopie l'arborescence.
Merci pour l'idée dans ton premier post :D

 

edit : ca necessite un petit coup de nettoyage pour les fichiers avec des dates par exemple...


Message édité par charask8 le 27-06-2013 à 11:37:07
Reply

Sujets relatifs:

Leave a Replay

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