Copié un fichier dans plusieurs répertoire

Suplex Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
brucine Messages postés 21614 Date d'inscription   Statut Membre Dernière intervention   -

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 41501 Date d'inscription   Statut Modérateur Dernière intervention   9 711
 

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 21614 Date d'inscription   Statut Membre Dernière intervention   3 404
 

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 21614 Date d'inscription   Statut Membre Dernière intervention   3 404 > brucine Messages postés 21614 Date d'inscription   Statut Membre Dernière intervention  
 

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 41501 Date d'inscription   Statut Modérateur Dernière intervention   9 711 > brucine Messages postés 21614 Date d'inscription   Statut Membre Dernière intervention  
 

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

0
brucine Messages postés 21614 Date d'inscription   Statut Membre Dernière intervention   3 404 > jee pee Messages postés 41501 Date d'inscription   Statut Modérateur Dernière intervention  
 

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