Script Windows

Résolu
aramir Messages postés 1131 Statut Membre -  
aramir Messages postés 1131 Statut Membre -
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.



--
Une fois le problème résolu, pensez à le notifier dans l'intitulé du forum.
En sélectionnant "marquer comme résolu" dans votre premier post.

1 réponse

  1. aramir Messages postés 1131 Statut Membre 226
     
    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