executa o formato exe no arquivo de lote

0

Eu quero fazer um arquivo de lote, que execute 3 arquivos executáveis, respectivamente: A.exe B.exe C.exe

P.S: A.exe precisa concluir seu trabalho, em seguida, o arquivo em lote é executado em B.exe e, por fim, em C.exe

    
por user44509 16.08.2010 / 14:59

1 resposta

9

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 ...

    
por 16.08.2010 / 15:13