If you know the Display Name of the service that must be started, you can conditionally start a service based upon the started status of another service by using the following commands:
for /f "Tokens=*" %%a in ('net start^|Find /i "Display Name of Service that must already be started"') do ( net start "Display name or short name of the service you wish to start" )If you are not sure that you have the Display Name or the service short name, its' registry key, use CSSvc.bat. The syntax for using CSSvc.bat is:
CSSvc StartSvc IfSvc OK
Where:
StartSvc is the short or Display Name of the service you wish to start. IfSvc is the short or Display Name of the service that must already be started. OK is a call directed environment variable that will contain: Y if StartSvc was successfully started. N if StartSvc failed to start, or if a service was not found, or if StartSvc EQUAL IfSvc. A if StartSvc was already started.NOTE: CSSvc.bat uses SvcDnSnRpt.bat, which must be located in a folder that is in your PATH.
CSSvc.bat contains:
@echo off setlocal EnableDelayedExpansion if \{%3\}==\{\} goto err1 set StartSvc=%1 set IfSvc=%2 set SS=N set IS=N set StartSvc="%StartSvc:"=%" set IfSvc="%IfSvc:"=%" for /f "Tokens=1* Delims=," %%s in ('SvcDnSnRpt') do ( If /i !StartSvc! EQU %%s set SS=Y If /i !StartSvc! EQU %%t set SS=Y&set StartSvc=%%s If /i !IfSvc! EQU %%s set IS=Y If /i !IfSvc! EQU %%t set IS=Y&set IfSvc=%%s ) if "%SS%" EQU "N" goto err3 if "%IS%" EQU "N" goto err4 if /i %StartSvc% EQU %IfSvc% goto err2 set OK=N for /f "Tokens=*" %%a in ('net start^|find /i %StartSvc%') do ( set OK=A ) if "%OK%" EQU "A" goto AOK for /f "Tokens=*" %%a in ('net start^|Find /i %IfSvc%') do ( call :quiet>nul 2>&1 ) if %ERRORLEVEL% EQU 0 set OK=Y :AOK endlocal&set %3=%OK% goto :EOF :err1 @echo Syntax: CSSvc StartSvc IfSvc OK endlocal goto :EOF :err2 @echo Syntax: CSSvc - %StartSvc%=%IfSvc% endlocal&set %3=N goto :EOF :err3 @echo Syntax: CSSvc - %StartSvc% not found. endlocal&set %3=N goto :EOF :err4 @echo Syntax: CSSvc - %IfSvc% not found. endlocal&set %3=N goto :EOF :quiet net start %StartSvc%
0 comments
Hide comments