1. На счет символов %
Moskus правильно сказал, их нужно удваивать в батниках, чтоб они сохранились в параметре программы. Плюсую. Думаю, что проблема именно в этом.
2. Батники всегда исполняются в среде cmd. Собственно это cmd.exe является интерпретатором командных файлов (.bat и .cmd). Даже когда вы в проводнике запускаете батник двойным ЛКМом, проводник вызывает cmd.exe для исполнения скрипта. В этом легко убедится с помощью менеджера задач.
3. Переменной %{localtime\:%X} в cmd никогда не было.
Это легко проверить введя команду set в cmd, она выдаст список всех переменных окружения. Это внутренняя переменная mvp, отношения к cmd не имеет.