Prueba con esto:
@echo off
Setlocal EnableDelayedExpansion
set carpeta=d:\carpeta prueba
pushd %carpeta%
for /f "tokens=* delims=" %%i in ('dir /b *.xml') do call :tratarch "%%i"
popd
goto :eof
:tratarch
set nomarch=%~n1
if "%nomarch:~-7%"=="_UPDATE" goto :eof
del /q tmp.txt>nul 2>&1
set /a lin=1
for /f "usebackq delims=" %%x in ("%~1") do (
if !lin! lss 25 (echo %%x>>tmp.txt
) else if !lin! gtr 37 echo %%x>>tmp.txt
set /a lin+=1
)
copy /y tmp.txt "%~n1_UPDATE%~x1"
goto :eof
En la variable CARPETA debes poner el path de la carpeta donde están lo XML que quieras que se traten. Tal como está planteado debe ignorar las líneas de la 25 a la 37 ambas incluidas. Las dos primeras líneas de la rutina TRATARCH son para evitar que se vuelvan a tratar los archivos modificados.