Bonjour, je dois réaliser un script batch pour mon travail mais je rencontre un petit problème avec la boucle for et les tests que j'effectue.

Voici mon code :
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
SET %HOME%=C:\
SET LOGFILE=C:\test.log
SET LOGTMP=c:\test.tmp

echo ##### Copy  ##### >> %LOGFILE%
copy toto.txt %HOME%
copy titi.txt %HOME%
copy tutu.txt %HOME%

REM Test de la présence des fichiers dans %HOME%
FOR %%i in (toto.txt tutu.txt titi.txt)
do 
      if EXIT %HOME\%%i (echo OK : %%i >> %LOGFILE%) 
      Else (goto END) 

pause
exit 0

:END
echo KO : %%i : see %LOGTMP% >> %LOGFILE%
exit 1

Si la présence est , j'obtiens dans mon log :

Ok : toto.txt
Ok : tutu.txt
Ok : titi.txt


Par contre si ce n'est pas bon, dans le log j'ai :

Ko : %i see C:\test.tmp

Je ne comprends pas pourquoi le %%i ne garde pas en mémoire la valeur du for!

Merci de votre aide