Я бы лучше использовал powershell, так как sc query
по умолчанию не отображает тип запуска:
Чтобы увидеть тип запуска по отображаемому имени, откройте cmd.exe
и введите (или вставьте):
powershell "Get-Service | select -property displayname,starttype"
или по имени службы Actaul:
powershell "Get-Service | select -property name,starttype"
или вы можете создать скрипт powershell, создав файл и присвоив ему расширение .ps1
и добавив:
Get-Service | select -property name,starttype
или, если вы действительно хотите использовать пакетный файл, просто создайте пакетный файл с расширением .cmd
или .bat
и добавьте:
powershell "Get-Service | select -property name,starttype"
Но, если вы действительно решили использовать пакетный режим, вы можете запустить его, который запускает 2 для циклов, один для получения всех служб, второй для каждого типа запуска. set
просто для очистки ненужных предметов.
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%i in ('sc query ^|findstr "SERVICE_NAME"') do (
set serv=%%j
set serv=!serv: =!
for /f "tokens=1,2 delims=:" %%a in ('sc qc !serv! ^| findstr "START_TYPE"') do set type=%%b
set type=!type: =!
set type=!type:1=!
set type=!type:2=!
set type=!type:3=!
echo !serv! : !type!
)