Indique no comando start qual deve ser a pasta ativa atual para o processo iniciado
start "[started in dir2]" /d "dir1\dir2" cmd /k 1.bat
Supondo que eu tenha um arquivo em lote (start.bat) em C: \ com estas linhas:
start cmd /k call dir1\dir2.bat
start cmd /k call dir3\dir4.bat
start cmd /k call dir5\dir6.bat
Por dentro de 1,2,3.batch eu tenho
call mvn clean install
assim eu preciso de 1,2,3.batch para executar no diretório onde eles estão localizados. Outras soluções que eu encontrei usam pushd
ou ~dp0
e não consigo trabalhar com start.bat porque, quando executadas, elas ainda são executadas em C: \ (o diretório de trabalho atual de start.bat)
A estrutura é esta:
C:\
dir1
dir2
dir3
dir4
dir5
dir6