У вас по существу проблема с отложенным расширением.Это одна из тех странных вещей, связанных с тем, как пакетные файлы расширяют переменные перед выполнением строки кода.Таким образом, у вас есть два варианта решения этой проблемы.
Включите отложенное расширение и используйте восклицательные знаки для ссылки на ваши переменные.
setlocal enabledelayedexpansion
FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (SET comment=!comment!%%g)
Используйте небольшую хитрость с командой CALL
.Вы удваиваете символы процента и используете команду CALL, которая дает вам две фазы расширения переменной.
FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (CALL SET comment=%%comment%%%%g)