1

私は 3 つのサービス (「SampleService」、「SampleService1」、「SampleService2」) を持っており、単一のスクリプトを使用して開始したいと考えています。以下のコード内でこのタスクを達成する方法を教えていただければ幸いです。

@ECHO OFF


REM  ---------------------------------
REM | *** Define script variables *** |
REM  ---------------------------------

    enter code here

SET serviceDisplayName="SampleService1"
SET logFile=c:\logs\StartService.log
SET /A waitSeconds=10


REM  ---------------------------------------------------------------------------------------
REM | *** GET THE KEYNAME OF THE SERVICE (NEEDED FOR "SC START" AND "SC STOP" COMMANDS) *** |
REM  ---------------------------------------------------------------------------------------

ECHO. >> %logFile%
ECHO ####### [%date%] Stop Service %serviceDisplayName% Log #######>> %logFile%

FOR /F "tokens=1-4 skip=1 delims= " %%a IN ('SC GetKeyName %serviceDisplayName%') DO (
    SET serviceKeyName=%%c
)

IF /i "%serviceKeyName%" EQU "service" (
    ECHO ERROR - No service with the display name of "%serviceDisplayName%" was found.">> %logFile%
    GOTO :END
)


REM  ---------------------------------------
REM | *** OUTPUT INITIAL SERVICE STATUS *** |
REM  ---------------------------------------

ECHO Service Display Name:  %serviceDisplayName%>> %logFile%
ECHO Service Key Name:      %serviceKeyName%>> %logFile%

ECHO. >> %logFile%
ECHO [%time%] Initial Status:>> %logFile%
ECHO --------------------------->> %logFile%

SC QC %serviceKeyName%>>%logFile%
SC QUERY %serviceKeyName%>>%logFile%


REM  ---------------------------------------
REM | *** SET START MODE TO 'Automatic' *** |
REM  ---------------------------------------

ECHO. >> %logFile%
ECHO [%time%] Setting start mode to 'auto'...>> %logFile%

SC CONFIG %serviceKeyName% start= auto


REM  ---------------------------
REM | *** START THE SERVICE *** |
REM  ---------------------------

ECHO. >> %logFile%
ECHO [%time%] Attempting to start the service...>> %logFile%

SC START %serviceKeyName%

SLEEP %waitSeconds%

REM  -------------------------------
REM | *** OUTPUT SERVICE STATUS *** |
REM  -------------------------------

ECHO. >>%logFile%
ECHO [%time%] Final Status:>>%logFile%
ECHO -------------------------->> %logFile%

SC QC %serviceKeyName%>>%logFile%
SC QUERY %serviceKeyName%>>%logFile%

ECHO. >> %logFile%
ECHO [%time%] Script Complete>> %logFile%
4

1 に答える 1