Bonjour,
J'ai écris un petit prog en dos qui permet de copier un fichier .dat puis un fichier .dis se nomment exactement pareil (exemple 123.dat et 123.dis) sur un ftp et ensuite de le copier vers un répertoire d'archive si la copie ftp est ok.
Le pb est que dès que je rajoute la commande "move" il me boucle deux fois. il va bien me copier 123.dat puis 123.dis et au lieux de sortir il va me rechercher encore les fichier 123.dat et 123.dis avant de sortir. résultat la log m'affiche que j'ai deux fichier ok et deux fichier ko. Normale il ont été déplacer dans le répertoire archive.
Voilà mon code, visiblement le tableau générer par la boucle for ne se vide pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 @echo off cls set datetimetmp=%date:~0,2%-%date:~3,2%-%date:~6,4% set datetimetmp=%datetimetmp: =% set ftp=ip set USERNAME=use set PASSWORD=pass for /r "D:\test\" %%X in (*.dat) do ( echo open %ftp%>>ftp.txt echo %USERNAME%>>ftp.txt echo %PASSWORD%>>ftp.txt echo ascii>>ftp.txt echo put %%~nX.dat>> ftp.txt echo bye>>ftp.txt ftp.exe -i -s:ftp.txt>log.tmp find "Transfer complete." log.tmp if errorlevel 1 ( echo %%~nX.dat Failed >>transfert_%datetimetmp%.log) else ( echo %%~nX.dat Succeeded >>transfert_%datetimetmp%.log move /Y %%~nX.dat ARCHIVES) echo. > ftp.txt echo. > log.tmp echo open %ftp%>>ftp.txt echo %USERNAME%>>ftp.txt echo %PASSWORD%>>ftp.txt echo ascii>>ftp.txt echo put %%~nX.dis>> ftp.txt echo bye>>ftp.txt ftp.exe -i -s:ftp.txt>log.tmp find "Transfer complete." log.tmp if errorlevel 1 ( echo %%~nX.dis Failed >>transfert_%datetimetmp%.log) else ( echo %%~nX.dis Succeeded >>transfert_%datetimetmp%.log move /Y %%~nX.dis ARCHIVES) echo. > ftp.txt echo. > log.tmp ) exit
Partager