Me es imposible probar el código,. pero deberia funcionar..
Código [Seleccionar]
@echo off
for /f "tokens=* delims=$" %%t in (file.txt) do set s=%%t & call :metodo
pause
exit
:metodo
set text=perro
set replace=gato
call:eval %%s:%text%=%replace%%%
echo %s%
goto:EOF
:eval
set s=%1