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



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

这就是我尝试过的

sc query service
sc query service2
sc query service3
pause

哪个命令适合列出服务的启动设置?

我宁愿使用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"

但是,如果你真的决定使用batch,你可以运行这个运行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!
)

最新更新