Assuming that %Edata% was a variable written like this "A;B;C;1;2;3;" then this code should be able to separate it into a bunch of numbered variables:
set /a c=0
FOR %%A IN (%Edata%) DO (
set /a c=%c%+1
set var%c%=%%A
echo.^>^>^> Set "%%A" to "var%c%"
)
Only the result is setting all parts of the variable to var0 because the %c% variable doesn’t count up each time like it’s supposed to. Could someone explain why?
This code works:
The problem in your script is that variables by default are expanded at parse time and not at execution time. In this case
cis expanded only once, before entering the loop, that’s why its value is always 0 and it never changes.You have to enable the expansion of variables at execution time with this command:
and you have to use !c! instead of %c% inside the for loop.