Bonjour à tous
J'ai un petit soucis avec un script et des variables. Il semble que lorsque
l'on fait un "call :etiquette" dans un script les variables modifié dans la
procédure ":etiquette" ne sont pas conservées. Voila en gros ce qui se passe :
set Var1=LaValeurEst1
commandeA
commandeB
if 1=1 call :toto
echo %Var1% >>me renvoi "LaValeurEst1" alors que je voudrais "LaValeurEst2"
End
:toto
set var1=LaValeurEst2
goto :eof
Y à t'il un moyen de "faire suivre" la valeurs des variables entre les
routines/sous-routines ?
J'espere que j'ai été assez clair dans mes explications.
Merci de votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles LAURENT
"Guillaume" a écrit dans le message de news: | Bonjour à tous
Bonjour,
| J'ai un petit soucis avec un script et des variables. Il semble que | lorsque l'on fait un "call :etiquette" dans un script les variables | modifié dans la procédure ":etiquette" ne sont pas conservées. Voila | en gros ce qui se passe : | | set Var1=LaValeurEst1 | commandeA | commandeB | if 1=1 call :toto | echo %Var1% >>me renvoi "LaValeurEst1" alors que je voudrais | "LaValeurEst2" End || toto | set var1=LaValeurEst2 | goto :eof | | Y à t'il un moyen de "faire suivre" la valeurs des variables entre les | routines/sous-routines ? | J'espere que j'ai été assez clair dans mes explications. | Merci de votre aide. | | Guillaume
Non, cela fonctionne correctement. Pouvez-vous vérifier que vous effectuez bien le branchement sur l'étiquette toto ? J'ai l'impression que le problème provient de là.
--- Coupez ici : var.cmd --- @echo off set var=1 call :change echo %var% goto :eof
:change set var=2 --- Coupez ici : var.cmd ---
D:Test> var.cmd 2
-- Gilles LAURENT http://glsft.free.fr
"Guillaume" <Guillaume@discussions.microsoft.com> a écrit dans le
message de news:6E02B8E2-181E-43F9-807C-7C806079410D@microsoft.com
| Bonjour à tous
Bonjour,
| J'ai un petit soucis avec un script et des variables. Il semble que
| lorsque l'on fait un "call :etiquette" dans un script les variables
| modifié dans la procédure ":etiquette" ne sont pas conservées. Voila
| en gros ce qui se passe :
|
| set Var1=LaValeurEst1
| commandeA
| commandeB
| if 1=1 call :toto
| echo %Var1% >>me renvoi "LaValeurEst1" alors que je voudrais
| "LaValeurEst2" End
|| toto
| set var1=LaValeurEst2
| goto :eof
|
| Y à t'il un moyen de "faire suivre" la valeurs des variables entre les
| routines/sous-routines ?
| J'espere que j'ai été assez clair dans mes explications.
| Merci de votre aide.
|
| Guillaume
Non, cela fonctionne correctement. Pouvez-vous vérifier que vous
effectuez bien le branchement sur l'étiquette toto ? J'ai l'impression
que le problème provient de là.
--- Coupez ici : var.cmd ---
@echo off
set var=1
call :change
echo %var%
goto :eof
"Guillaume" a écrit dans le message de news: | Bonjour à tous
Bonjour,
| J'ai un petit soucis avec un script et des variables. Il semble que | lorsque l'on fait un "call :etiquette" dans un script les variables | modifié dans la procédure ":etiquette" ne sont pas conservées. Voila | en gros ce qui se passe : | | set Var1=LaValeurEst1 | commandeA | commandeB | if 1=1 call :toto | echo %Var1% >>me renvoi "LaValeurEst1" alors que je voudrais | "LaValeurEst2" End || toto | set var1=LaValeurEst2 | goto :eof | | Y à t'il un moyen de "faire suivre" la valeurs des variables entre les | routines/sous-routines ? | J'espere que j'ai été assez clair dans mes explications. | Merci de votre aide. | | Guillaume
Non, cela fonctionne correctement. Pouvez-vous vérifier que vous effectuez bien le branchement sur l'étiquette toto ? J'ai l'impression que le problème provient de là.
--- Coupez ici : var.cmd --- @echo off set var=1 call :change echo %var% goto :eof
:change set var=2 --- Coupez ici : var.cmd ---
D:Test> var.cmd 2
-- Gilles LAURENT http://glsft.free.fr
Guillaume
Non, cela fonctionne correctement. Pouvez-vous vérifier que vous effectuez bien le branchement sur l'étiquette toto ? J'ai l'impression que le problème provient de là.
--- Coupez ici : var.cmd --- @echo off set var=1 call :change echo %var% goto :eof
:change set var=2 --- Coupez ici : var.cmd ---
D:Test> var.cmd Merci pour votre réponse.
Je n'ai pas bien retranscri mon script. Il y avait une boucle "for" au milieu. Je ne sais pas pourquoi, mais j'avais oublié d'activé l'expansion retardée. Donc finalement j'ai résolu mon problème. Désolé pour le dérangement :) Bonne journée.
Guillaume
Non, cela fonctionne correctement. Pouvez-vous vérifier que vous
effectuez bien le branchement sur l'étiquette toto ? J'ai l'impression
que le problème provient de là.
--- Coupez ici : var.cmd ---
@echo off
set var=1
call :change
echo %var%
goto :eof
:change
set var=2
--- Coupez ici : var.cmd ---
D:Test> var.cmd
Merci pour votre réponse.
Je n'ai pas bien retranscri mon script. Il y avait une boucle "for" au
milieu. Je ne sais pas pourquoi, mais j'avais oublié d'activé l'expansion
retardée. Donc finalement j'ai résolu mon problème.
Désolé pour le dérangement :)
Bonne journée.
Non, cela fonctionne correctement. Pouvez-vous vérifier que vous effectuez bien le branchement sur l'étiquette toto ? J'ai l'impression que le problème provient de là.
--- Coupez ici : var.cmd --- @echo off set var=1 call :change echo %var% goto :eof
:change set var=2 --- Coupez ici : var.cmd ---
D:Test> var.cmd Merci pour votre réponse.
Je n'ai pas bien retranscri mon script. Il y avait une boucle "for" au milieu. Je ne sais pas pourquoi, mais j'avais oublié d'activé l'expansion retardée. Donc finalement j'ai résolu mon problème. Désolé pour le dérangement :) Bonne journée.