Affectation de variable dans boucle FOR batch

EFFERALGAN -  
 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)

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

  1. efferalgan
     
    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
    12
    1. cycy99
       
      merci aidé en 2017 !!!
      0
  2. PhB
     
    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
    6
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    et avec set mavar=%E%
    1
  4. EFFERALGAN
     
    %%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
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    et avec set mavar=%%E%
    0
  7. LeGrandSchlougy
     
    Et même en 2014 ce post continue d'aider.
    Merci efferalgan !
    0
    1. GJA
       
      Et même en 2015 :D
      0
    2. Suba
       
      Et même en 2016 =p
      0
    3. Foenix
       
      je confirme même en 2016 !
      0