Eu não acredito que isso seja possível em lote, considerando suas principais limitações, mas vou tentar.
Aqui está um código que coloca cada nome de arquivo em um diretório em uma matriz, então você pode adicionar algum código que use esses nomes de arquivos como base e adicione a eles:
@echo off
setlocal disableDelayedExpansion
:: Load the file path "array"
for /f "tokens=1* delims=:" %%A in ('dir /s /b^|findstr /n "^"') do (
set "file.%%A=%%B"
set "file.count=%%A"
)
:: Access the values
setlocal enableDelayedExpansion
for /l %%N in (1 1 %file.count%) do echo !file.%%N!
Pessoalmente, eu faria um arquivo chamado simplesmente de file.txt
e usaria isso como meu nome de arquivo base para criar novos arquivos com.