Rechercher : dans
Par :

Affectation de variable dans boucle FOR batch

Dernière réponse le 27 oct 2007 à 14:44:58 EFFERALGAN, le 25 oct 2007 à 12:08:42 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « affectation de variable dans boucle FOR batch » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...

1

dubcek, le 25 oct 2007 à 12:41:54

Et avec set mavar=%E%

Répondre à dubcek

2

EFFERALGAN, le 25 oct 2007 à 12:51:03

%%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

Répondre à EFFERALGAN

3

dubcek, le 25 oct 2007 à 13:53:35

Et avec set mavar=%%E%

Répondre à dubcek

4

floxi, le 27 oct 2007 à 13:57:21

Bonjour,
Si tu veux des infos complémentaires sur la fonction for
http://batcher.ath.cx/cmd/for.php
exemple
http://batcher.ath.cx/fonctions.php#for

voili voilou
Flox

Répondre à floxi

5

 efferalgan, le 27 oct 2007 à 14:44:58

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

Répondre à efferalgan