Ваш вопрос, кажется, сводится к тому, как запускать разные серии команд в каждом экземпляре cmd.exe, не имея нескольких командных файлов.
Есть довольно простой способ сделать это. Идея состоит в том, чтобы запускать один и тот же командный файл в каждом экземпляре cmd.exe, но передавать ему параметр командной строки, который сообщает ему, какую часть работы выполнять.
Полезный трюк здесь заключается в использовании параметра командной строки в команде goto, например:
if not "%1" == "" goto :%1
start "Job 1" "%~dpfx0" job1
start "Job 2" "%~dpfx0" job2
goto :eof
:job1
echo Job 1
pause
exit
:job2
echo Job 2
pause
exit
Обратите внимание также на использование% ~ dpfx0 для определения полного пути и имени текущего скрипта. Это должно быть в кавычках, если путь содержит пробелы, что означает, что (из-за нечетного синтаксиса команды start) вам сначала нужно явно указать заголовок окна (также в кавычках).