Batch controle op service

Status
Niet open voor verdere reacties.

rolfkunst

Gebruiker
Lid geworden
15 jan 2008
Berichten
143
Hoi allemaal,

Ik zit weer eens met een uitdaging:

Ik wil graag via een batch bestand een controle op een service uitvoeren. Dus als een bepaalde service (bijvoorbeeld mysql) gestart is, dat hij dan verder gaat met het uitvoeren van het script, en als hij gestopt is, dat hij dan de bewuste service start.

Ik heb al dit:
sc query mysql |find /c /i "RUNNING"
Hier krijg ik een 1 of een 0 uit, 1 voor running en 0 voor stopt

Maar hoe kan ik nu iets met die 1 of 0 doen? Iets met If Exist of iets dergelijks?

Alvast bedankt!
 
Heb je een specifieke reden om daar batch scripting voor te gebruiken?
vbs heeft op een windows machine net wat meer mogelijkheden omdat je de hele wmi ook kan gebruiken (powershell is nog beter maar is niet altijd even makkelijk)

als je het met batch moet doen zul je met errorlevels kunnen werken.

Code:
@ECHO OFF
sc query mysql |find /c /i "RUNNING"
IF ERRORLEVEL 1 GOTO ServiceRuns

REM start service
net start mysql


REM Loop tot de service gestart is met een pause van 5 seconden
:Wait
  PING -n 6 127.0.0.1>nul
  VERIFY >nul
  sc query mysql |find /c /i "RUNNING"
  IF ERRORLEVEL 1 GOTO ServiceRuns
GOTO Wait

:ServiceRuns
REM rest van de code
 
Laatst bewerkt:
Bedankt Ellasar!

Ik heb uiteindelijk dit gebruikt:

FOR /F "tokens=1,2,3,4" %%A IN ('SC.EXE \\server QUERY VMtools ^| FIND /I "STATE"') DO SET STATE=%%D
IF /I "%STATE%"=="RUNNING" GOTO BACKUP
 
Voorbeeld van dat spreekwoord met wegen en rome enzo.... :)
Mooi dat het lukt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan