重新启动通配符服务


21

当前,我们已经设置了一个.BAT文件,其中列出了所有服务来启动/停止它们,例如。

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

我们一直在添加新服务,并且列表不断增加,并且难以维护批处理文件。

是否可以使用诸如“ SC启动服务*”之类的WILDCARD?


1
什么Windows版本?
Endoro

Answers:


17

您可以使用wmic和SQL类似的通配符语法。

cmd控制台:

wmic service where "name like 'SERVICE%'" call startservice

.bat脚本中:

wmic service where "name like 'SERVICE%%'" call startservice

可用动词包括startservicestopservicepauseserviceresumeservice,和其他人。做wmic service call /?更多的信息。


1
查询语言称为WQL,BTW。它是SQL的子集。
鲍勃

@鲍勃-哦。雅每天都在学习新知识。 :>
rojo 2013年

只是想添加一件事。我遇到错误,无法识别服务名称。事实证明,服务具有服务名称和显示名称。应该使用服务名称,而不是显示名称。您可以通过sc query
jdramer 2015年

13

通过Powershell轻松实现:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service

我赞成这一点,因为它的运行速度比wmic快。在我的机器上,以这种方式获取服务列表大约需要2毫秒。使用wmic大约需要13000毫秒。
arjabbar '16

我如何一次性将这两个命令结合在一起?
Raja Anbazhagan

0

如果您要使用“单行”命令,

您可以使用Powershell中预先内置的Restart-Service Cmdlet

要使用Restart-Service,只需调用cmdlet,后接服务名称即可:

Restart-Service mysql57

要重新启动多个服务,只需指定每个服务的名称,并用逗号分隔即可:

Restart-Service mysql57,apache

如果愿意,可以添加-displayname参数并指定服务显示名称(“服务”管理单元中显示的名称),而不是:

Restart-Service -displayname "Mysql 5.7 server"

此Cmdlet也接受通配符匹配。要重新启动以“ mysql”开头的所有服务:

Restart-Service mysql*
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.