Use sc query Tomcat7
para obter o status do serviço.
Estou tentando garantir que o arquivo em lote saiba que o serviço "Tomcat7" está totalmente parado antes de tentar iniciar o serviço "Tomcat7" novamente. Eu sei que "NET STOP" e "NET START" devem esperar para retornar até que cada um tenha parado ou iniciado completamente, mas tenho visto casos em que ele continua de qualquer maneira, possivelmente devido a uma longa espera por tempo limite às vezes.
@ECHO OFF
net stop Tomcat7
rd /s /q "C:\storefront\live\work"
rd /s /q "C:\storefront\live\logs"
for /F "tokens=3 delims=: " %%H in ('sc query Tomcat7 ^| findstr " STATE"') do (
if /I "%%H" EQ "STOPPED" (
net start Tomcat7
)
)
sc start stisvc || Echo Service Not Fully Exited
Isso não faz o que você quer? Lembre-se, tentamos coisas e pegamos erros, não testamos e depois fazemos. Pense no porquê.
Tags batch-file