i

commande SETLOCAL


Suppose this code:


If "%getOption%" equ  "yes" (

   set /P option=Enter option:

   echo Option read: %option%

)


Previous code will NOT work becase %option% value is replaced just one time when the IF command is parsed (before it is executed). You need to "delay" variable value expansion until SET /P command had modified variable value:


setlocal EnableDelayedExpansion

If "%getOption%" equ  "yes" (

   set /P option=Enter option:

   echo Option read: !option!

)


Check this:


set var=Before

set var=After & echo Normal: %var%  Delayed: !var!


Guess what the output is...


shareimprove this answer



Voir aussi : https://stackoverflow.com/questions/6679907/setlocal-and-enabledelayedexpansion-usage-question