The following will work just fine
//var %a 1,%b 2 | if %a < %b echo -a %b
The following will not
//var %a 1,%b 2 | if %a < %b %b = 3 | echo -a %b
(Should give 2 Unknown command)
It's understandable that the if may still be trying to compare the two %b's and whatnot, but they're essentially the same code, yet the %b is treated as a command.