Script Windows

Résolu/Fermé
aramir Messages postés 939 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 26 décembre 2016 - 28 janv. 2012 à 18:00
aramir Messages postés 939 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 26 décembre 2016 - 28 janv. 2012 à 19:03
Bonjour,
J'ai un problème avec le script windows ci-dessous

@echo off
SET dest=XXX

SET /P choice=

IF %choice% == 1 (
SET dest=truc
echo %dest%
PAUSE
EXIT ) else (
SET dest=chose
echo %dest%
PAUSE
)

En effet quel que soit ce que l'on tape pour initialiser choice, la variable dest reste égale à XXX. En revanche cela fonctionne si j'enlève les if. Mais le script perd alors tout sons sens. Pourquoi refuse t-il de modifier une variable dans un if?
Merci d'avance pour vos réponses.



A voir également:

1 réponse

aramir Messages postés 939 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 26 décembre 2016 222
28 janv. 2012 à 19:03
J'ai trouvé,
il faut activer l'expansion retardée de variables.
(cf. http://astase.com/forums/viewtopic.php?id=2075 )
Ce qui donne:
setlocal enableDelayedExpansion
set dest=XXXXXXXXXXXXXXXX

SET /P choice=

IF %choice% == 1 (
SET dest=truc
echo "on veut truc"
echo !dest!
PAUSE
) else (
echo "on veut chose"
SET dest=chose
echo !dest!
PAUSE
)
endlocal 
0