Ros код, который я публикую, также предназначен для определения количества запущенных сервисов ...
Представьте, что вы хотите знать, сколько сервисов похоже на Oracle *, затем вместо NameOfSercive вы устанавливаете Oracle ... и вы получаете количество сервисов, подобных Oracle *, работающих с переменной% CountLines%, и если вы хотите что-то сделать Есть только 4, вы можете сделать что-то вроде этого:
IF 4 ==% CountLines% GOTO FourServicesAreRunning
Это намного мощнее ... и ваш код не позволяет вам узнать, запущена ли нужная служба ... если есть другой srecive, начинающийся с того же имени ... представьте:
-ServiceOne
-ServiceOnePersonal
Если вы ищете ServiceOne, но он работает только с ServiceOnePersonal, ваш код сообщит, что ServiceOne работает ...
Мой код может быть легко изменен, так как он читает все строки файла и читает построчно, он также может делать все, что вы хотите с каждой службой ... см. Это:
@ECHO OFF
REM Put here any code to be run before check for Services
SET TemporalFile=TemporalFile.TXT
NET START > %TemporalFile%
SET CountLines=0
FOR /F "delims=" %%X IN (%TemporalFile%) DO SET /A CountLines=1+CountLines
SETLOCAL EnableDelayedExpansion
SET CountLine=0
FOR /F "delims=" %%X IN (%TemporalFile%) DO @(
SET /A CountLine=1+CountLine
REM Do whatever you want to each line here, remember first and last are special not service names
IF 1==!CountLine! (
REM Do whatever you want with special first line, not a service.
) ELSE IF %CountLines%==!CountLine! (
REM Do whatever you want with special last line, not a service.
) ELSE (
REM Do whatever you want with rest lines, for each service.
REM For example echo its position number and name:
echo !CountLine! - %%X
REM Or filter by exact name (do not forget to not remove the three spaces at begining):
IF " NameOfService"=="%%X" (
REM Do whatever you want with Service filtered.
)
)
REM Do whatever more you want to all lines here, remember two first are special as last one
)
DEL -P %TemporalFile% 2>nul
SET TemporalFile=
REM Put here any code to be run after check for Services
Конечно, это только список запущенных служб, я не знаю, каким образом net может перечислять не запущенные службы ...
Надеюсь, это поможет !!!