'Expanding environment variables for command prompt
I would like to run a cmd.exe that would evaluate environment variables at call time instead of when it parses the command. If I set the BASE to 2 and echoing it, I should see the number 2, although running this script does not properly set the base.
Expected Behavior:
C:\Users\schristo>cmd.exe /X /C "set BASE=2 && echo %BASE% && pause"
2
Press any key to continue . . .
Actual behavior:
C:\Users\schristo>cmd.exe /X /C "set BASE=2 && echo %BASE% && pause"
%BASE%
Press any key to continue . . .
Solution 1:[1]
This should work for you:
cmd.exe /X /V:ON /C "set BASE=2&&echo !BASE!&&pause"
/V:ON enables Delayed Expansion of variables, which is what you need here. Order of the switches (/V:ON /C) matters.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
