Perdona que haya tardado tanto en atender esta consulta después de haberte sugerido que la hicieras. Lo cierto es que no recibí ningún mensaje de la página informándome de ella.
Esto es lo que he preparado para tu pregunta:
:: Para extraer las 5 primeras (número configurable) de una serie de archivos
:: Creando un nuevo archivo que tiene como primera línea el nombre del archivo
:: Seguido de una línea en blanco y con esos contenidos en nuevo archivo en carpeta destino
@echo off
Setlocal EnableDelayedExpansion
set carporig=d:\carpeta origen
set carpdest=d:\carpeta prueba
set /a nlind=5
set prefijo=nlin_
pushd %carporig%
for /f "tokens=*" %%a in ('dir /b *.txt') do call :tratarch "%%a"
popd
goto :eof
:tratarch
echo %~1>"%carpdest%\%prefijo%%~1"&echo.>>"%carpdest%\%prefijo%%~1"
set /a lin=1
for /f "usebackq tokens=*" %%x in (%1) do (
if !lin! gtr %nlind% goto :eof
echo %%x>>"%carpdest%\%prefijo%%~1"&set /a lin+=1
)
He planteado el bat de manera que se usen variables para la carpeta origen, la carpeta destino, el número de líneas a leer y el prefijo a añadir al archivo de destino. Naturalmente estas variables deben configurarse con los valores que interesen.