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

问题描述 投票:0回答:1

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

这是我试过的

sc query service
sc query service2
sc query service3
pause

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

windows batch-file service cmd
1个回答
1
投票

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

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

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

或按实际服务名称:

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 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!
)
© www.soinside.com 2019 - 2024. All rights reserved.