Copié un fichier dans plusieurs répertoire

Fermé
Suplex Messages postés 1 Date d'inscription mardi 18 juillet 2023 Statut Membre Dernière intervention 18 juillet 2023 - 18 juil. 2023 à 15:16
brucine Messages postés 19355 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 2 mars 2025 - 18 juil. 2023 à 16:50

Bonjour,

J'aimerai copié un fichier "test.png" dans un répertoire contenant 160 répertoires. 
Auriez vous une astuce via la cmd pour copier ce test.png sans que j'ai à ctrl C ctrl V dans chaque répertoire. 
Je me suis renseigné j'ai trouvé 

for /d %a in (*.*) do @copy test.avi %a

Mais je n'ai pas réussi à faire cette commande.

Merci 
A voir également:

1 réponse

jee pee Messages postés 40883 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 2 mars 2025 9 549
18 juil. 2023 à 15:39

Bonjour,

for /d %a in (*.*) do @copy test.png %a

doit fonctionner. Le fichier image doit être placé dans le répertoire qui contient les 160 sous répertoires. Après il faut ouvrir une fenetre de commande en ligne dans ce même répertoire pour taper la commande.

On ouvre la fenetre ligne de commande avec Touche Windows+R puis cmd.exe et avec la commande cd il faut aller dans le bon répertoire. Ou dans l'explorateur Windows on remplace en haut le chemin du répertoire par CMD


0
brucine Messages postés 19355 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 2 mars 2025 2 943
18 juil. 2023 à 16:00

Bonjour,

La commande va en principe soit échouer soit au mieux copier les fichiers à la racine de C:\ (ce n'est peut-être pas ce qu'on veut) parce que la variable %a décrit le nom de dossier toto et pas le chemin par exemple C:\Users\brucine\Desktop\toto.

De plus, elle ne prend que les dossiers de premier rang, elle va ignorer
C:\Users\brucine\Desktop\toto

Il faut que la destination de COPY ou XCOPY soit un fichier.

Il me paraît donc plus sain de spécifier la source, dans l'exemple le % est doublé pour exécution dans un batch:

for /d %%a in (C:\Users\brucine\desktop\*.*) do xcopy C:\Users\brucine\desktop\acheter.txt %%a\*.*
0
brucine Messages postés 19355 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 2 mars 2025 2 943 > brucine Messages postés 19355 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 2 mars 2025
18 juil. 2023 à 16:18

Si je veux aussi les sous-répertoires, je dois utiliser:
 

for /f %%a in ('dir /a:d /b /s "C:\Users\brucine\desktop\"') do xcopy C:\Users\brucine\desktop\acheter.txt %%a\*.*
0
jee pee Messages postés 40883 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 2 mars 2025 9 549 > brucine Messages postés 19355 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 2 mars 2025
18 juil. 2023 à 16:33

ca fonctionne si on est dans le répertoire souhaité au départ.

0
brucine Messages postés 19355 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 2 mars 2025 2 943 > jee pee Messages postés 40883 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 2 mars 2025
18 juil. 2023 à 16:50

Même pas sûr parce que, comme je l'ai souligné, %a est seulement le nom du dossier toto et pas son chemin %a\, je ne peux pas copier dans un dossier dont le chemin n'est pas précisé sans compter que COPY copie des fichiers, pas des dossiers.

Cela sous-tend que le fichier à copier se trouve aussi à la racine du répertoire à traiter et en effet que l'on exécute la commande depuis ce dossier, ce qu'on obtient par un Shell "Command Here" ou en précisant ce chemin par CD, et qui de plus va nous planter si la source est C:, on n'a pas du tout envie d'écrire dans les dossiers système si tant est qu'on le puisse.

La présentation de la question laisse à penser que son auteur n'a pas envisagé ces "subtilités".

0