Hugo7 a écrit:
Si le echo contenant "!" n'est PAS dans le for, il faut sortir de l'expansion retardée des variables avant d'afficher, ce qui te fera donc mettre "endlocal" avant le echo contenant le "!", mais il ne faudra pas oublier de remettre "setlocal enabledelayedexpansion enableextensions" juste après le echo!
Mauvais idée, car il y a un nombre limité de faire setlocal dans un fichier batch, du coup, si tu fais trop de fois (en gros que tu passe trop de fois par la boucle) :
Code:
@echo off
setlocal enabledelayedexpansion
:boucle
...
...
endlocal
...
...
setlocal enabledelayedexpansion
goto boucle
Tu obtiendra une erreur au bout d'un certains nombre de passage sur la boucle, ce que tu peux faire pour éviter ça c'est :
- Soit tout bêtement ne pas utiliser de "setlocal enabledelayedexpansion"
- Trouver un code pour échapper le '!'
- Soit faire ce code (mais pas très performant :/) :
Code:
@echo offsetlocal enabledelayedexpansion
:boucle
...
...
cmd /v:off /c "echo;!"
...
...
setlocal enabledelayedexpansion
goto boucle
@ ++