Estou tentando criar um script para executar um exe no desligamento para instalar o sp1. meu script é algo como (não é um script real).
If installed GOTO END
Install.exe
END:
Meu problema é que, quando executado, ele inicia o instalador e termina o script porque o instalador é um processo diferente e segue encerrando o processo de instalação porque o computador está desligando e desligando o sistema (pelo menos, é o que eu acho está fazendo.)
Existe alguma maneira de esperar que o processo iniciado seja concluído e depois desligá-lo?
windows
batch-file
executable
Kravlin
fonte
fonte
like start /wait install; exit
?cmd /C start /wait install
Uma maneira mais curta:
Além disso
pode ser usado, embora com mais eventualmente você consiga capturar alguma saída do console. E é por isso que funciona - o comando canalizado aguarda a entrada até que o .exe seja concluído
fonte
<
,>
,>>
,&
,&&
,||
,|
)Chamar o exe diretamente do arquivo em lotes ou usar
start /wait
funcionará, mas há uma ressalva.Se o exe que você chama criar outro processo, como chamar outro exe e sair do arquivo em lotes, o processamento continuará após o término do exe chamado, pois não tem conhecimento de outros processos iniciados por ele.
No seu caso, esse é um problema real, porque os instaladores normalmente extraem arquivos de alguma forma de contêiner compactado, que pode ser incorporado no próprio exe, dispara um dos arquivos extraídos e sai. Alguns instaladores fornecem parâmetros de linha de comando que informam ao exe original para não sair até que toda a instalação esteja concluída, então é algo que você pode querer investigar. Fora isso, não há uma maneira real de contornar isso apenas com arquivos em lotes e seria necessário uma solução programática para resolver.
fonte
msiexec
muitas vezes também dispara outros processos. :(start /wait
? Eu mesmo acreditava que é necessário para usarstart /wait
a arquivo de bloco lote até GUI (como oposto a um console) de aplicação acabamentos. Mas testando-o agora, vejo que os arquivos em lote realmente esperam até pelos aplicativos da GUI. Eu postei a pergunta correspondente: Por que o aplicativo GUI bloqueia um arquivo em lotes?Aqui está um exemplo usando o MATLAB! Eu assumi que a configuração do caminho para o MATLAB está concluída e a saída do MATLAB está sendo assegurada pelo arquivo FileName.m (ou o usuário a especificou internamente).
fonte
Eu tive o problema que John Gardeniers tinha ou descreveu, onde meu exe chamou outro exe e terminou, portanto o início / espera não funcionou. Eu criei um "loop while" para verificar se está em execução e depois seguir em frente quando terminar. Os horários podem ser ajustados para atender às suas necessidades.
fonte
Você pode usar o comando start / wait. Isso inicia um aplicativo e aguarda o término.
Ou, se você souber quanto tempo leva para executar, consulte o comando de suspensão, fornecido pelas Ferramentas do Windows Server 2003 Resource Kit . Sleep.exe pode ser usado para pausar seu lote por qualquer número de segundos para permitir que o programa seja instalado completamente antes que o arquivo em lote continue instalando qualquer outra coisa. Existem alguns programas que ignoram a sintaxe "iniciar / esperar", devido ao próprio programa iniciar outro processo, o sleep.exe é muito útil.
fonte