Не знаю, как вы хотите вызвать свой пакетный файл, чтобы он был в воздухе.
Но я думаю, что вы были близки с объединенной копией a.txt + f.txt + z.txt.txt
Просто создайте этот список динамически, используя аргументы командной строки (у вас может быть до 9)
@echo off
set copyfiles=
for /d %%i in (%*) do call :process %%i
goto :output
:process
if "%copyfiles%" NEQ "" (
set copyfiles=%copyfiles%+%1.txt
)
if "%copyfiles%" EQU "" (
set copyfiles=%1.txt
)
goto :end
:output
copy %copyfiles% merge.txt
:end
Это тогда будет выполнено с
merge-them.cmd a b c f
Или выможет установить переменную наподобие
mylist=a,b,c,f
Тогда ваш цикл FOR будет ссылаться на% mylist% вместо% *