Copie d'un fichier dans plusieurs dossiers [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
lundi 30 juillet 2007
Statut
Membre
Dernière intervention
24 juillet 2012
-
Messages postés
18226
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
11 octobre 2020
-
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



6 réponses

Messages postés
18226
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
11 octobre 2020
5 028
hello
depuis la ligne de commande DOS
for /d %a in (*.*) do @copy test.avi %a
depuis un fichier .bat remplacer %a par %%a
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
6
Date d'inscription
lundi 30 juillet 2007
Statut
Membre
Dernière intervention
24 juillet 2012

Merci de votre réponse, mais désolé je n'ai aucune connaissance en programmation et je ne sais pas comment utiliser votre aide...
Messages postés
6
Date d'inscription
lundi 30 juillet 2007
Statut
Membre
Dernière intervention
24 juillet 2012

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
Messages postés
18226
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
11 octobre 2020
5 028
essayer ça
@echo off
for /d %%a in (*.*) do copy test.avi "%%a"
Messages postés
6
Date d'inscription
lundi 30 juillet 2007
Statut
Membre
Dernière intervention
24 juillet 2012

Merci pour cette réponse, ça fonctionne avec le fichier bat, et ça va m'éviter un travail fastidieux de copie.
Messages postés
5
Date d'inscription
jeudi 30 janvier 2014
Statut
Membre
Dernière intervention
4 février 2014

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 :)
Messages postés
5
Date d'inscription
jeudi 30 janvier 2014
Statut
Membre
Dernière intervention
4 février 2014

ok merci.
Heureusement que l'on peut exporter ce fichier txt d'Excel directement :)
Messages postés
5
Date d'inscription
jeudi 30 janvier 2014
Statut
Membre
Dernière intervention
4 février 2014

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 !
Messages postés
18226
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
11 octobre 2020
5 028
quelle boite de dialogue ?
on peut tester l'existence des dossiers et mettrre les erreurs dans un fichier
@echo off
set nom=nom du fichier
for /F "delims=" %%a in (liste.txt) do (
if exist "%%a" copy "%nom%" "%%a\%nom%"
else
echo %%a n'existe pas >> Rapport.txt
)
Messages postés
5
Date d'inscription
jeudi 30 janvier 2014
Statut
Membre
Dernière intervention
4 février 2014

Bonjour

Merci pour votre réponse mais ça ne fonctionne pas, je m'explique:
Même si le nom de la liste existe, il apparait dans le rapport.txt
Avez-vous une astuce pour éviter que les fichier présents dans la liste.txt ne soit pas copier dans le rapport?
Merci
Messages postés
18226
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
11 octobre 2020
5 028
modifier le if
@echo off
set nom=nom du fichier
for /F "delims=" %%a in (liste.txt) do (
if exist "%%a" (
copy "%nom%" "%%a\%nom%"
) else (
echo %%a n'existe pas >> Rapport.txt
)

)
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
120
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.