Ir ao conteúdo
  • Cadastre-se

Outro Condição IF Vinculado a um Processo Específico no Windows (BatScript)


Posts recomendados

Bom Dia/Tarde/Noite

 

No local onde eu trabalho prestamos suporte a um sistema de automação comercial com banco de dados SQL, onde o mesmo utiliza um software de conexão por rede chamado "Admin.exe", onde este software é o responsável pelas informações de localização do banco de dados sendo também referência para as máquinas que irão trabalhar com o mesmo.

Em nosso uso interno utilizamos outro software de apoio que faz backup do sistema onde ele deve estar aberto sempre que este "Admin.exe" estiver iniciado.

Os problema que estes programas podem ser fechados pelo o usuário desinformado. Estava pensando em fazer um programa ".bat" do windows onde ele fará o seguinte:

 

1º - Verificar se o software "Admin.exe" está aberto, caso não esteja aberto o bat deve abrir o mesmo.

2º - Verificar se o software de backup está aberto, caso não esteja aberto o bat deve abrir o mesmo.

3º - Após a verificação ele retornar estes dois programas o bat deve fazer um intervalo de 30 minutos.

4º - Após o intervalo o mesmo deve fazer a verificação dos passos 1 e 2 novamente, fazendo assim com que o ciclo seja infinito.

 

a título de exemplo o caminho do Admin do programa fica em: "C:\program files\Xtema Vendas\Admin.exe" e o caminho do programa de backup fica em "C:\program files\backup banco\Backup.exe".

 

ao utilizar o comando do tasklist no CMD os mesmos trazem, por exemplo, os seguintes nomes: "Admin.exe" e "Backup.exe".

 

A estrutura do código eu compreendo porém não sei como referenciar uma condição de "IF" a um processo do windows. Alguém sabe como me ajudar?

Link para o comentário
Compartilhar em outros sites

Fiz o seguinte batch conforme as informações que você me deu:

 

@echo off

:Executar
cls
Echo.
Echo Esse batch verifica a cada 30 min se os programas Admin.exe e Backup.exe estão rodando
Echo.

@Tasklist /fi "imagename eq admin.exe" /fi "status eq running" > Nul | find /i "admin.exe" > Nul

If "%errorlevel%"=="1" start admin.exe


Tasklist /fi "imagename eq backup.exe" /fi "status eq running" | find /i "backup.exe"

If "%errorlevel%"=="1" start backup.exe

Echo Pressione Crtl + C para sair
@timeout /t 1800 /nobreak > Nul
GOTO Executar

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...