спасибо, проверил, работает, только на реальной задаче не работает (только на примере), видимо какие - то символы запрещенные:
Код:

@Echo Off
cls
Set "BoxOut=C:\Users\Alexander\work\GENERATOR"
Call :Var "C:\Users\Alexander\work\GENERATOR\categories.txt" "@@cat"
Call :Var "C:\Users\Alexander\work\GENERATOR\names.txt" "@@nam"
Set /A i=1000000
:Begin
Set /A i+=1
Call :Out "%%@@cat%i%%%" "%%@@nam%i%%%" "%BoxOut%\" &&GoTo :Begin
Pause
Exit /B
:Out
If %1=="" Exit /B 1 &If %2=="" Exit /B 1
>>"%~3%~1.bat" (
echo @Echo Off
echo cls
echo >nul Chcp 1251
echo Set "BoxIn=F:\%~1"
echo Set "Kword=%~2"
echo Set "Reg=^[0-9][0-9][0-9][0-9]%Kword%\..*"
echo Set /A M=4
echo
echo Set "Mask=*.*"
echo Set /A Max=2
echo
echo Set /A NMax=0
echo FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%BoxIn%\*%Kword%.*" /B /O:N /A:-D ^|findstr /I /R /C:"%Reg%"`) DO (
echo Set "NMax=%%~na"
echo Call Set "NMax=1%%NMax:~0,%M%%%"
echo )
echo
echo Set /A Num=1000000
echo Set /A Num=%Num%+%NMax%
echo Set /A MMax=%Max%+%Num%
echo
echo Set /A MMax=%Max%+%Num%
echo FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /O:N /A:-D ^|findstr /I /R /V /C:"%Reg%"`) DO (
echo Call :RenNNN "%BoxIn%" "%%a" "%Kword%" %M% %MMax% ||Exit /B 1
echo )
echo Pause
echo Exit /B
echo
echo :RenNNN
echo Set /A Num+=1
echo If %Num% GTR %5 Exit /B 1
echo Call Set "NNum=%%Num:~-%4%%"
echo 2>nul Ren "%~1\%~2" "%NNum%%~3%~x2" ||GoTo :RenNNN
echo Exit /B 0
)
Exit /B 0
:Var
FOR /F "usebackq tokens=1* delims=:" %%a IN (`2^>nul FINDSTR /N /R /C:"^.*" %1`) DO Set /A N=1000000+%%a &Call Set "%~2%%N%%=%%b"
Exit /B
Сразу вопрос, можно ли избавится от надписи echo в скрипте (слева, в выделенном жирным шрифтом тексте) ? Для удобства, чтобы просто вставил нужный код и все.
Можно использовать текстовый файл (если так проще сделать), в котором будет текст, который нужно размножать (который жирным шрифтом). Т.е. в скрипте тогда будут ссылки на 3 txt файла. Один txt это код, который требуется размножать, а второй и третий txt, это данные (в них одинаковое количество строк), которые необходимо подставлять в код, который будет в первом txt.
Пример:
скрипт
Код:

script.txt = это то, что нужно размножать.
categories.txt = @@cat
names.txt = @@nam
брать имена файлов для создания = @@cat.bat
содержание script.txt
Код:

@Echo Off
cls
nul Chcp 1251
Set "BoxIn=F:\@@cat"
Set "Kword=@@nam"
Set "Reg=^[0-9][0-9][0-9][0-9]%Kword%\..*"@@cat
Set /A M=4
содержание categories.txt
Код:

sdfhgd 65
kakjdfd12
содержание names.txt
Код:

7657557
qkjkjfjqf
результат выполнения:
sdfhgd 65.bat
Код:

@Echo Off
cls
nul Chcp 1251
Set "BoxIn=F:\sdfhgd 65"
Set "Kword=7657557"
Set "Reg=^[0-9][0-9][0-9][0-9]%Kword%\..*"sdfhgd 65
Set /A M=4
kakjdfd12.bat
Код:

@Echo Off
cls
nul Chcp 1251
Set "BoxIn=F:\kakjdfd12"
Set "Kword=qkjkjfjqf"
Set "Reg=^[0-9][0-9][0-9][0-9]%Kword%\..*"kakjdfd12
Set /A M=4