Copie de fichier dans multiple dossiers

Bonjour,

je suis sous Vista/XP et j’ai besoin de copier 1 fichier unique dans un peu plus de 5000 dossiers.

  • nombreux sous dossier en arborescence
  • les noms de dossier comportent des espaces

Comment faire ?

Merci d’avance

Steven

Si tu as la liste des chemins des dossiers, tu peux faire un script qui fait ça…

Genre:

copy “C:/XXX/foobar” “C:/YYY/dest”

copy “C:/XXX/foobar” “C:/YYY/dest2”

merci…

Mais si c’etait si simple je l’aurai fait :wink:

En fait j’ai encodé mes 3000 CDs classés en arborescence par type, par auteur et par album. Pour faire apparaitre sur mon HDD multimedia Tvix toutes les pochettes des albums sous forme d’icone je dois inserer un fichier “icon.tvix” dans chaque dossier.

Je n’ai donc pas la liste des inombrable dossiers… :frowning:

Ya un soft ki fait ca “Copy Files to Multiple Folder Locations Software 7.0”, mais je vais pas depenser 20 USD juste pour une seule op, car ensuite je le ferai a mano pour mes prochains CD.
Edité le 13/08/2008 à 14:42

Ca n’est qu’un simple parcours récursif de dossier alimentant une collection (un tableau) de chaîne pour ensuite exécuter une commande système (“copy”) sur chaque entrée de la collection.
Tu peux facilement faire ça en Perl, PHP, Java et VBS.

lol, ca a l’air simple.

j’avais oublié de preciser que j’y connais rien en programmation, donc si tu as un petit script vite fait a me faire parvenir avec details de mise en oeuvre: genre un truc que je peux copier en mode texte et executer…

Je ne suis pas sous windows en ce moment, donc je ne peux pas vérifier, mais ce genre de truc ca doit se regler en une ligne en mode commande
De mémoire :
for /f %i in (dir /s /d) do copy icon.tvix %i

en ligne de commande

pour vérifier que ta commande est correcte avant tout lances la avec un @echo
De cette manière tu es sûr de ne pas faire de bêtise qui sera difficile à récupérer suite à une copie malencontreuse

Edité le 13/08/2008 à 21:40

Désolé ça n’est pas le genre de la maison :neutre:

Zarathoustra ->
il doit manquer un délimiteur juste avant la parenthèse fermante, non ?
A la réflexion, je pense aussi qu’il faudrait mettre le dernier %i entre guillemets, sinon les noms de dossiers contenant des espaces vont poser problème.
Edité le 14/08/2008 à 07:50

j’ai oublié un guillemet avt la parenthèse fermante :ane:
par contre dans mes tests je n’ai pas eu à mettre le %i entre guillemets. mais j’ai pas fait de vrai copie, juste un echo donc tu as peut-être raison.
Edité le 14/08/2008 à 09:18

Je suggérerai plutôt :

for /F "delims=" %i in ('dir /B /S /AD c:\documents') do copy c:\icon.tvix "%i"

Histoire que s’il y ait un espace, ça ne pose pas problème

Wouah !

Merci beaucoup a vous tous, ca fonctionne impec :clap:

Ou est-ce que je peux creuser ce language, histoire de comprendre un peu mieux ce qu’on peut faire avec ?

windows.developpez.com…
www.hotline-pc.org…

J’ai encore un petit probleme:

L’arborescence de mon HDD est comme cela: Genre\Artiste\Album x

Je souhaiterai que la copie du fichier icon.tvix s’arrete au niveau Genre\Artiste et donc qu’il ne soit pas copié jusqu’au niveau \Album sinon les titres des albums sont affichés eux aussi en forme d’icone ce qui la n’est pas agreble visuellement.

Merci d’avance

[edit] non rien désolé :ane:
Edité le 20/08/2008 à 12:55

Difficile de s’arrêter à l’avant dernier niveau, par contre, tu peux le créer partout, puis supprimer le dernier niveau
1- tu fais la copie de la manière exposée plus haut, mais en ke changeabt de nom, par exemple icon.tmp
2- tu fais un deuxième passage, et pour chaque fichier icon.tmp trouvé, tu le renommes icon.tvix DANS LE REPERTOIRE PARENT
3–tu fais un dernier passage en supprimant les icon.tmp restants

dans l’optique ou tu as un répertoire musique racine dans le lecteur X
qui contient des répertoire genre1 genre2 genre3 …
qui contiennent eux même artiste1 artistes2 artiste3…
qui contiennent eux même album1 album2 album3…

c’est un peu tiré par les cheveux mais ça devrait fonctionner je pense

Edité le 24/08/2008 à 01:58

une autre version

Edité le 24/08/2008 à 02:57