Это специальный символ, если вы сделаете эти 100 %%, он будет правильно выводиться как 100%. Я полагаю, что есть способ справиться с этим изящно, но вам, возможно, придется поиграть с этим.
РЕДАКТИРОВАТЬ: Некоторые копали и наткнулись на BatchSubstitute.bat на http://www.dostips.com/DtCodeBatchFiles.php
Адаптировал это к этому, и я думаю, что это должно работать для вас - если кто-то полностью понимает, что происходит, я хотел бы не слышать это - у меня есть только смутное представление:
@echo off
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
set infile=e:\file.txt
set outfile=e:\outfile.txt
for /f "tokens=1,* delims=]" %%A in ('"type %infile%|find /n /v """') do (
set "line=%%B"
if defined line (
call set "line=echo.%%line%%"
for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X >> %outfile%
) ELSE echo. >> %outfile%
)