[Résolu] Sortir d'une boucle For

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

yoltoorshul
SuperBatcher
Messages : 200545
Enregistré le : 12 janv. 2026 12:55

Re: [Résolu] Sortir d'une boucle For

Message par yoltoorshul »

yoltoorshul
SuperBatcher
Messages : 200545
Enregistré le : 12 janv. 2026 12:55

Re: [Résolu] Sortir d'une boucle For

Message par yoltoorshul »

yoltoorshul
SuperBatcher
Messages : 200545
Enregistré le : 12 janv. 2026 12:55

Re: [Résolu] Sortir d'une boucle For

Message par yoltoorshul »

BatchOp
Batcheur occasionnel
Messages : 3
Enregistré le : 23 juin 2026 11:06

Re: [Résolu] Sortir d'une boucle For

Message par BatchOp »

Pour ton problème de boucle FOR /F qui perd les variables, c'est le piège classique de l'expansion retardée. Sans `setlocal enabledelayedexpansion`, les variables dans une boucle ne sont pas réévaluées à chaque itération elles restent à leur valeur initiale. La solution : ajouter `setlocal enabledelayedexpansion` en début de script, puis utiliser `!var!` au lieu de `%var%` à l'intérieur de la boucle. Ça force le shell à réévaluer la variable à chaque passage.
Exemple minimal :
```
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1" %%a in (fichier.txt) do (
set "val=%%a"
echo Valeur lue : !val!
)
endlocal
```
Si tu oublies le `!` et que tu mets `%val%`, tu auras toujours la première valeur ou une valeur vide. C'est l'erreur la plus fréquente en batch selon moi.
Répondre