WAD. You're inserting additional separator characters; there's no way that @IF can predict what is an embedded "ignore-this-it's-not-really-a-delimiter" character and what is a "wait-this-is-really-a-delimiter" character (unless you quote the non-delimiter characters). You need to switch to the DWIM parser!(TCC LE 13.03.38 Win7)
I have problems with the @if function:
echo %@if[%@eval[ %_WINVER - 6] ge 6 , this, that]
echos "this, that" :( .
C:>setdos /G, & echo %@word[".,",0,%_winver] %@int[%_winver] & setdos /G. 6 6,1 C:>setdos /G. & echo %@word[".,",0,%_winver] %@int[%_winver] & setdos /G. 6 6