Questão Como executar vários arquivos em lote com um arquivo mestre de lote


Eu tenho três arquivos bat que gostaria de executar, em três diretórios diferentes:

diretório / bat1 / bat1.bat

diretório / bat2 / bat2.bat

diretório / bat3 / bat3.bat

Eu gostaria de usar um master .bat para iniciar todos os outros morcegos em seus diretórios. Eu não posso usar chamada porque recebo erros porque há dependências para cada morcego diferente no diretório. Eu tentei usar o início, mas isso não funciona, basta trazer um prompt de comando na pasta.

Eu sei que isso soa um pouco confuso, mas tudo que eu quero fazer é usar um único arquivo .bat para executar vários arquivos .bat independentes uns dos outros em seus próprios diretórios.


2


origem


Experimentar cd para cada diretório, em seguida, execute o arquivo em lotes ... - DavidPostill♦
Como seria esse código? Seria cd "diretório / bat1 /" iniciar bat1.bat? - JCTechie
cd c:\directory\bat1 && bat1.bat então cd c:\directory\bat2 && bat2.bat etc - DavidPostill♦
Isso não funcionou para mim, ele só executou o primeiro arquivo de lote. - JCTechie


Respostas:


Eu encontrei uma solução! Eu usei esse código para fazer o bastão abrir os três arquivos de morcego diferentes independentemente:

cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat

3



mas você escreveu na sua pergunta "Eu tentei usar o start, mas isso não funciona, é só abrir um prompt de comando na pasta." <- e então você respondeu usando start. Então, o que foi isso? - barlop
Desculpe pela confusão que não falei corretamente. Por alguma razão, quando acabei de correr. start \ directory \ bat1 \ bat1.bat acabou de abrir um prompt de comando em branco no diretório \ bat1 \ directory. - JCTechie
Eu tentei isso, mas depois de chamar todo o arquivo de lote, um ciclo interminável de abertura de CMDs começou a aparecer - Kim Carlo


Se você usar começar, os outros arquivos bat criarão um novo processo para cada bastão e os executarão todos ao mesmo tempo.

cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat

Mas se você quiser executar o próximo após o último, você pode usar ligar

cd "\directory\bat1\"
call bat1.bat
cd "\directory\bat2\"
call bat2.bat
cd "\directory\bat3\"
call bat3.bat

não se esqueça do primeiro \ no início do CD caso contrário, ele tentará alterar o diretório em um subdiretório do diretório de trabalho atual.


1





Então eu lutei com esse problema, e nenhuma dessas soluções ou outras funcionaram. O que eu queria fazer em um arquivo de lote "mestre" era acessar subpastas e executar batchfiles nessas pastas em sequência. Isso é o que acabei fazendo,

cd Folder1
call batch_cmd.bat
cd ..
cd Folder2
call batch_cmd.bat
cd ..

etc. etc. etc.

Este formato funcionou bem para mim desde que eu estava usando o javascript / nodejs para gerar esses comandos e arquivos em lote.

Se você quiser fazer algo inteiramente em arquivos em lote, sugiro que procure scripts do PowerShell.


1