Affectation de variable dans boucle FOR batch
EFFERALGAN
-
cycy99 -
cycy99 -
Bonjour,
Petit problème dans l'affectation de variable dans une boucle FOR dans un batch DOS
Ceci marche : (affichage du 4e token est ok)
Ceci ne marche pas : (%mavar% semble vide)
Quelqu'un a une idée?
d'avance merci
Damien
Petit problème dans l'affectation de variable dans une boucle FOR dans un batch DOS
Ceci marche : (affichage du 4e token est ok)
for /F %%D in (c:\Mon_fichier) do (
for /F "tokens=4 delims=\" %%E in ("%%D") do (
echo %%E
pause
)
)
Ceci ne marche pas : (%mavar% semble vide)
for /F %%D in (c:\Mon_fichier) do (
for /F "tokens=4 delims=\" %%E in ("%%D") do (
set mavar=%%E
echo %mavar%
pause
)
)
Quelqu'un a une idée?
d'avance merci
Damien
Configuration: Windows 2003 Internet Explorer 7.0
6 réponses
-
Trouvé : il s'agit d'un probleme d'affectation dynamique avec la commande set
ouvrir une invite de commande, puis :
cmd /V:ON c:\mon_batch.bat
puis dans mon_batch.bat, au lieu d'utiliser %mavar% utiliser !mavar! :
for /F %%D in (c:\Mon_fichier) do ( for /F "tokens=4 delims=\" %%E in ("%%D") do ( set mavar=%%E echo !mavar! pause ) )
et ça marche.
merci -
Certes le sujet date de 2007, mais il me sert encore aujourd'hui !
Je rajoute donc cette information : au lieu de taper la commande cmd /V:ON avant de lancer le batch, il est aussi possible de mettre la commande
setlocal ENABLEDELAYEDEXPANSION
en début de batch et
endlocal
en fin de batch -
et avec set mavar=%E%
-
%%E appelle le token selectionné
lors de l'execution de set mavar=%%E, je vois bien passer mon token extrait correctement.
set mavar=blablabla
Le probleme est que la commande echo %mavar% ne renvoit rien du tout -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
et avec set mavar=%%E%
-