Um arquivo em lote de três linhas serve. Por exemplo, um arquivo de lote chamado mybatch.bat
...
START /wait notepad.exe
START /wait sol.exe
START /wait thirdExecutable.exe
o parâmetro /wait
também pode ser substituído por /w
e instrui o script em lote a aguardar até que o executável termine antes de prosseguir para o próximo estágio. Assim, você pode optar por não usar este parâmetro na terceira linha. Fazer isso só faria com que a janela cmd
permanecesse aberta até que o terceiro executável fosse finalizado.
EDITAR ENDEREÇO COMENTÁRIO: Receio que funcione para mim. Você também pode certificar-se de substituir o executável pelo caminho exato dos arquivos executáveis - por exemplo, se A.exe estava localizado em C:\MyFolder\
, você modificaria a primeira linha como START /wait C:\MyFolder\A.exe
. Isso não é necessário se os executáveis estiverem em qualquer pasta referenciada na variável de ambiente %PATH%
ou se estiverem na mesma pasta que o arquivo de lote. Eu não acho que esse é o seu problema.
Gostaria de saber se essas três cmd
janelas que o lote abriu eram realmente os arquivos executáveis que você queria executar? A janela principal que é aberta com o arquivo em lote irá ecoar os comandos que está sendo emitido e também será exibida se não puder executar os comandos que ele recebe. Se você não recebeu um alerta de erro de pop-up, seu arquivo de lote está encontrando e executando com êxito esses três executáveis especificados.
Como o link que forneci também diz, você também pode usar o parâmetro /minimized
- ou equivalentemente /m
- além de /wait
para executar os arquivos minimizados por padrão. Isso pode tornar as coisas talvez um pouco mais simples e parecer com o que você esperava.
Como está, acho que está funcionando exatamente como pretendido. Exatamente como você descreveu o problema, de qualquer maneira.
SEGUNDO EDIT: Dado o seu arquivo de lote, eu fiz as pequenas alterações necessárias para fazer o que você quer. Eu realmente não sei o que você quer ecoar no começo, mas deve mostrar informação suficiente.
ECHO "programs are processing...."
ECHO "First Phase"
START /w "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vsvars32.bat"
ECHO "Second Phase"
START /w "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
ECHO "Final phase"
START /w "C:\Program Files\OPNET.0.A\sys\pc_intel_win32\bin\modeler.exe"
Isso funciona como pretendido?
EDIÇÃO FINAL: Você pode contornar a variável de ambiente, se precisar executar esse arquivo em algum lugar onde não tem permissão para modificá-lo.
ECHO "programs are processing...."
ECHO "First Phase"
C:
cd "\Program Files\Microsoft Visual Studio 9.0\VC\bin
START /w vsvars32.bat
ECHO "Second Phase"
cd ..
START /w vcvarsall.bat
ECHO "Final phase"
cd "\Program Files\OPNET.0.A\sys\pc_intel_win32\bin"
START /w modeler.exe
E isso parece contornar o problema do meu lado. Feio como qualquer coisa, mas arquivos em lote nunca pareciam ser intrinsecamente bonitos ...