如何使用批处理在Windows上自动启动所有服务?

时间:2018-09-06 06:12:39

标签: windows batch-file service cmd

我需要列出所有具有特殊名称和索引的服务及其自动启动状态。我的想法是使用批处理和诸如sc查询之类的东西,但这没有给我必要的信息。

这是我尝试过的

sc query service
sc query service2
sc query service3
pause

哪个命令适合列出服务的开始设置?

1 个答案:

答案 0 :(得分:1)

我宁愿使用Powershell,因为sc query默认不显示启动类型:

要按显示名称查看启动类型,请打开cmd.exe并键入(或粘贴):

powershell "Get-Service | select -property displayname,starttype"

或使用actaul服务名称:

powershell "Get-Service | select -property name,starttype"

或者您可以通过创建文件并给其一个.ps1扩展名并添加以下内容来创建Powershell脚本:

Get-Service | select -property name,starttype

或者如果您确实要使用批处理文件,只需创建扩展名为.cmd.bat的批处理文件并添加:

powershell "Get-Service | select -property name,starttype"

但是,如果您确实确定要使用批处理,则可以运行此程序,该程序运行2个for循环,一个用于获取所有服务,第二个将获取每个服务的启动类型。 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!
)