Copie d'un fichier dans plusieurs dossiers

Résolu
jth Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Ma question est simple:
Dans un dossier nommé Vidéo j'ai 350 dossiers et un fichier "test.avi", je désirerai à l'aide d'un fichier batch copier le fichier test dans les 350 dossiers.
Si quelqu'un peut m'expliquer la marche à suivre, en admettant que ce soit possible, ça serai sympa.
Merci de votre aide



A voir également:

6 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
depuis la ligne de commande DOS
for /d %a in (*.*) do @copy test.avi %a
depuis un fichier .bat remplacer %a par %%a
4
jth Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai essayé la commande dos dans fichier bat enregistré dans mon dossier Vidéo en modifiant comme indiqué "%%a" mais ça ne fonctionne pas ... dois-je modifier autre chose?
Merci de votre aide
2
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer ça
@echo off
for /d %%a in (*.*) do copy test.avi "%%a"
0
jth Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci de votre réponse, mais désolé je n'ai aucune connaissance en programmation et je ne sais pas comment utiliser votre aide...
0
jth Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci pour cette réponse, ça fonctionne avec le fichier bat, et ça va m'éviter un travail fastidieux de copie.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nico_soul Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Sur la même base que cette (vieille) discussion:
Je souhaite copier un dossier dans plusieurs répertoire mais pas tous! Par exemple le programme ne copierait que dans les dossier issus d'une liste préalablement créée (Excel, Word, Blocnote, autre???).

Quel est alors la commande à intégrer pour que le programme lise cette liste et dispatch le dossier uniquement dans ces dossier listés?

Merci pour votre aide :)
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
le fichier liste.txt contient la liste des destinations, 1 par ligne
@echo off
set nom=nom du fichier
for /F "delims=" %%a in (liste.txt) do copy "%nom%" "%%a\%nom%"
0
nico_soul Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup ça marche parfaitement!
Par contre la liste doit obligatoirement être en ".txt" ? Car j'ai essayé avec un Excel et un word mais ça n'a pas fonctionné...

Merci encore!
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
oui, une boucle for ne peut lire que du texte
0
nico_soul Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci.
Heureusement que l'on peut exporter ce fichier txt d'Excel directement :)
0
nico_soul Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Quand j'exécute la copie multiple à partir de la liste et que le programme ne trouve pas les dossiers correspondants (erreur de frappe dans la liste, oubli ...) il y a un message dans la boite de dialogue m'en avertissant. Ma question est la suivante: est-t-53 possible de récupérer ce texte automatiquement et de le mettre dans un fichier texte (par exemple "Rapport") et de l'afficher automatiquement?
Merci pour votre aide !
0
heyquem Messages postés 759 Date d'inscription   Statut Membre Dernière intervention   131
 
et en Python ?

from os import walk
from shutil import copy

dn = 'I:\\Prov Python\\'

for subdn in walk(dn).next()[1]:
    copy(dn + 'test.txt', dn + subdn)


walk() est un générateur récursif de triplets (chemin du dossier, sous dossiers, fichiers)
En appliquant next() on obtient le premier triplet. Pour obtenir la liste des sous-dossiers, il faut prendre à l'index 1.
-1