Fonctionnement boucle for
Bonjour à tous,
Je souhaiterais comprendre pourquoi ma boucle for se joue sur 3 occurrences !!!
Je m'explique : je parse un fichier qui me ressort 2 lignes, ces 2 lignes sont coupées en 3 parties que j'envoie dans des variables.
Voici mon code :
Code:
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 41 42 43 44
| @echo off
set Now=%date:~6,4%-%date:~3,2%-%date:~0,2%
if not exist C:\Winnt\archives_signatures\%Now% (
mkdir C:\Winnt\archives_signatures\%Now%
xcopy /e /y /r C:\Winnt\Signatures\* C:\Winnt\archives_signatures\%Now% > NUL
)
type "C:\Users\BB07814N\Desktop\ajout_suppression.csv" > C:\Temp\ajout_suppression.txt
for /f "tokens=1,2,3 delims=;" %%a IN ('findstr /i %computername% C:\Temp\ajout_suppression.txt') DO (
set cible=%%a
set sig=%%b
set act=%%c
set now2=%date:~6,4%%date:~3,2%%date:~0,2%
call :add_del
)
del /q C:\Temp\ajout_suppression.txt
:add_del
if "%act%" == "Ajout" (
if exist "C:\Winnt\Signatures\%sig%" (
echo %now2% %cible% La signature %sig% existe deja et ne sera pas ajoutee
) else (
type nul > "C:\Winnt\Signatures\%sig%"
if errorlevel 0 (
echo %now2% %cible% Ajout de la signature %sig% : OK
) else (
echo %now2% %cible% Ajout de la signature %sig% : KO
)
)
) else if "%act%" == "Suppression" (
if not exist "C:\Winnt\Signatures\%sig%" (
echo %now2% %cible% La signature %sig% n'existe pas elle ne sera pas supprimee
) else (
del /Q "C:\Winnt\Signatures\%sig%
if errorlevel 0 (
echo %now2% %cible% Suppression de la signature %sig% : OK
) else (
echo %now2% %cible% Suppression de la signature %sig% : KO
)
)
) else (
echo Action non prevue
)
goto :eof |
Et voici le résultat :
Code:
1 2 3 4
| 20160701 zeq320m1 Suppression de la signature test_avant_suppression : OK
20160701 zeq320m1 Ajout de la signature test_apres_ajout : OK
20160701 zeq320m1 La signature test_apres_ajout existe deja et ne sera pas ajout
ee |
Mon résultat devrait contenir simplement les 2 premières lignes !!!
Pourquoi la boucle repart sur la première occurrence ???
Je vous remercie par avance.