As per the % issue above, this will be because & is a special character in DOS, used to execute multiple commands.
I can only assume that this is down to the lines:
IF @various@==0 SET TrackName=@TrackName_SA@
IF @various@==1 SET TrackName=@TrackName_VA@
... which would produce (for my INI):
IF @various@==0 SET TrackName=01 - Boys & Girls
...
.. which is basically saying 'Set the variable TrackName to "01 - Boys" and then execute the command "Girls"'.
I suspect you would see a line in the console saying:
'Girls' is not recognized as an internal or external command,
operable program or batch file.
Again, maybe REACT needs to replace "&" with "^&" before replacing the token (?).
Edit: to clarify, to work correctly the line should be:
IF @various@==0 SET TrackName=01 - Boys ^& Girls
(The caret escapes the ampersand)
Edit 2: Bah!
Actually, looking at the source and putting my thinking head on, I realise that this is not as easy as I imagined. REACT will replace @TrackName_SA@ with the value set by TrackName_SA in the INI, and then REACT will replace the tokens used in that value - so it's not really possible to pin down that value.
Therefore, I would suggest doing this:
IF @various@==0 SET TrackName="@TrackName_SA@"
IF @various@==1 SET TrackName="@TrackName_VA@"
SET TrackName=%TrackName:&=^&%
SET TrackName=%TrackName:"=%
This surrounds the original value with quotes so the ampersand doesn't cause a problem. It then replaces "&" with "^&" and finally removes the quotes.