Page 1 sur 1

copie de fichiers automatique

Posté : 18 août 2010 11:13
par valarauko
Bonjour, je sollicite votre aide parce que là je suis dans l'impasse...

je m'explique :

j'ai un dossier qui contient plusieurs fichiers
dans ce dossier on trouve un fichier texte qui contient les chemins vers lesquels il faut copier chacun de ces fichiers

en fait j'aimerais faire un bat qui pour chaque fichier du dossier, vérifie s'il le trouve dans mon txt, puis le copie vers le chemin décrit dans ce txt.

Par exemple :
imaginons un dossier qui contient :
- test1.doc
- truc.xls
- machin.pdf
- chemins.txt

dans chemins.txt on trouve :
c:\test\test1.doc
d:\machin.machin.pdf
c:\Windows\truc.xls

il faudrait un programme qui copie chacun de ces trois fichiers dans leur chemin de destination respectif.

(j'ai déjà le fichier texte contenant les chemins)

je ne sais pas si je me suis bien expliqué

en tout cas si vous avez une idée je suis preneur, là je suis un peu perdu...

Re: copie de fichiers automatique

Posté : 18 août 2010 13:13
par DarkBatcher
bonjour,

je te propose de modifier ton fichier chemins.txt:

Code : Tout sélectionner

nomfichier,chemin
exemple:

Code : Tout sélectionner

toto.txt,c:\toto\toto.txt
Puis tu met une boucle for dans ton batch:

Code : Tout sélectionner

FOR /f  "tokens=1,2 delims=," %%A IN (chemins.txt) DO (
COPY "%%A%" "%%B%"
)
mais il se pourait que sa ne marche pas s'il y a des espaces

si tu ne sais pas te servir de la boucle for va voir là http://batcher.fr/fonctions.php#for et là http://batcher.fr/cmd/for.php

Re: copie de fichiers automatique

Posté : 18 août 2010 13:55
par valarauko
pas bête du tout ça ! merci

le problème c'est que mon fichiers "chemins.txt" est créé automatiquement par un XCopy qui vérifie et me liste les chemins des fichiers différents entre 2 dossiers
en gros voilà comment est créé mon chemins.txt

xcopy c:\dossier1 d:\dossier2 /Y /S /D /L > chemins.txt

Re: copie de fichiers automatique

Posté : 18 août 2010 15:18
par DarkBatcher
Bon la j'ai bien réfléchi et j'ai un code qui devrait aller avec ton chemins.txt créé automatiquement:

Code : Tout sélectionner

for /f %%A IN (chemins.txt) DO (
Rem on étend %%A en nom de fichier et extensions
Set nomfichier=%%~nxA%
Copy !nomfichier! %%A%
)

Re: copie de fichiers automatique

Posté : 18 août 2010 16:31
par valarauko
arf on doit pas être loin

quand je regarde le %%~nxA% me donne bien le nom du fichier et son extension ça c'est impeccable par contre il ne me fait pas l'initialisation de variable
j'ai tenté en changeant le nom de variable (on ne sait jamais ^^), ou en remplaçant les ! par des % mais rien n'y fait

quand je remplace par des % il ne me met rien du tout sinon avec les ! il m'affiche !nomfichier!

pourtant juste au dessus on voit bien le set nomfichier=test.doc (par ex.)

en tout cas merci beaucoup pour ton aide ;-)

Re: copie de fichiers automatique

Posté : 18 août 2010 16:53
par DarkBatcher
C'est normal que sa ne marche pas l'initialisation de variable car j'ai oublié de mettre :

Code : Tout sélectionner

setlocal enabledelayedexpansion


Désolé :roll:

Re: copie de fichiers automatique

Posté : 18 août 2010 17:02
par valarauko
j'avais vu ça aussi sur le net et testé mais ça ne change rien
j'ai aussi tenté de lancer cmd /V:ON et vérifié dans la base de registre mais j'ai bien EnableExtensions valeur:1

Re: copie de fichiers automatique

Posté : 18 août 2010 17:26
par DarkBatcher
Non, J'ai dit enabledelayedexpansion et pas enableextension:
-enableextension: active les extensions de commande
-enabledelayedexpansion: active l'expansion retardée de variable.

Normalement avec la ligne que j'ai mis ça marche :D

Re: copie de fichiers automatique

Posté : 19 août 2010 10:09
par valarauko
En fait, j'ai balancé un echo !nomfichier! dans un txt et effectivement je retrouve bien mes noms de fichiers, et en vérifiant dans le dossier2 je retrouve bien mes fichiers copiés (j'ai juste remplacé le copy par un xcopy pour écraser les fichiers existants).

Merci beaucoup !!!

:D :D :D