Alexander_88, попробуйте:
Код:

@echo off
chcp 1251>nul
set string_quantity=50
set index_format=4
:: Set the value of the variable: «+» or nothing.
set final_blank_line=+
:: Enter the names of one or more files.
for %%? in (
"list1.txt"
"list2.txt"
"list3.txt"
) do (
call:sub %%?
)
del .txt .vbs
exit /b
:sub
setlocal
(
echo.
echo $$$
for /f "delims=" %%i in ('
find /n /v ""^<%1
') do (
set string=%%i
(
for /f "delims=" %%j in ('
call set /p"=%%string:*]=%%"^<nul
') do (
echo %%j
)
)|| (
echo.
)
set /a count_1+=1
for /f %%j in ('
set /a count_1
') do (
if %%j==1 (
set /a count_2+=1
)
if %%j==%string_quantity% (
echo $$$
set count_1=
)
)
)
echo $$$
)>.txt
for /f %%i in ('
set /a index_format-1
') do (
for /l %%j in (1 1 %%i) do (
call set zeros=0%%zeros%%
)
)
for /l %%i in (1 1 %count_2%) do (
set $index=%zeros%%%i
for /f %%j in ('
call echo %%$index:~-%index_format%%%
') do (
set /p="WScript.StdOut.Write(Split(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile(".txt").ReadAll(), vbCrLf&"$$$"&vbCrLf)(%%i))"<nul>.vbs
(
cscript //nologo .vbs
if "%final_blank_line%"=="+" (
echo.
)
)>"%~dpn1%%j%~x1"
)
)
set /p="WScript.CreateObject("SAPI.SpVoice").Speak("Processing of the '%~nx1' file is complete!")"<nul>.vbs
cscript //nologo .vbs 2>nul
endlocal
exit /b
.