Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

.Bats que chamam outros .bats.

Olá, Eu gostaria de saber se existe possibilidade de escrever um arquivo .bat que abra um outro .bat? No meu caso era para subir um banco hsqldb em um prompt e no outro prompt ele abrir o administrador. Eu tenho dois que já fazem essas tarefas, e é preciso abrir um de cada vez. Já tentei até criar um terceiro .bat que chamasse o servidor do DB, esperasse um pouco e em seguida ele chamaria o adm, mas não deu. .

Segue o arquivo do servidor:

@echo off
cls
echo *****************************************
echo **             SERVER UP               **
echo *****************************************

echo Deseja subir o HSQL?
pause
cd C:\Users\meuusuario\Desktop\hsqldb-2.4.0\hsqldb\lib
java -cp hsqldb.jar org.hsqldb.server.Server --database.0 file:loja-virtual --dbname.0 loja-virtual

.

O do adm do db é:

@echo off

cd C:\Users\meuusuario\Desktop\hsqldb-2.4.0\hsqldb\lib
java -cp hsqldb.jar  org.hsqldb.util.DatabaseManager

Os prompts de ambos ficam ocupados enquanto cada um está ativo. Desde já eu agradeço.

4 respostas

Oi Aluízio, tudo bem? Esse post no stack overflow Diz que podemos usar a função call informando o nome do outro bat. Ai ele executa o outro bat. Exemplo:

call outro_bat.bat
solução!

Obrigado pela ajuda Wanderson. No caso do hsql, o call chamou somente o primeiro bat da linha:

call "...\bat1.bat"  && call "...\bat2.bat"

Se o primeiro bat for o server, ele sobe o server quietinho sem reclamar. Já se o primeiro bat for o manager, ele me solta alguns warning de acesso negado.

Criei dois outros bats aqui e os chamei com o call, Eles vieram certinho e na ordem. . No final do artigo que você sugeriu, citaram o "start cmd /k" e ele funcionou legal no caso do hsqldb. Foi chamado os dois prompts em ordem aleatória e no meu caso serviu bem. Obrigado.

Ótimo Aluízio! Essa solução pareceu bem interessante. Bons estudos!

Fica mais prático rsrs. Valeu a força!