目前,我们已经设置了一个.bat
文件,列出了所有要启动/停止的服务,例如。
SC start SERVICE1
SC start SERVICE2
SC stop SERVICE1
SC stop SERVICE2
我们一直在添加新的服务,列表不断增长,很难在批处理文件中维护。
是否可以使用像“SC start SERVICE*”之类的通配符?
答案1
很简单,通过 Powershell:
Get-service SERVICE* | stop-service -force
Get-service SERVICE* | start-service
答案2
您可以使用wmic
SQL-ish 通配符语法。
从cmd
控制台:
wmic service where "name like 'SERVICE%'" call startservice
从.bat
脚本中:
wmic service where "name like 'SERVICE%%'" call startservice
可用动词包括startservice
、、、等。更多信息请stopservice
参见。pauseservice
resumeservice
wmic service call /?
答案3
如果你想要一行命令,
您可以使用重新启动服务 Cmdlet它是在 powershell 中预先构建的。
要使用 Restart-Service,只需调用 cmdlet 后跟服务名称:
Restart-Service mysql57
要重新启动多个服务,只需指定每个服务的名称(以逗号分隔):
Restart-Service mysql57,apache
如果愿意,可以添加 -displayname 参数并指定服务显示名称(服务管理单元中显示的名称):
Restart-Service -displayname "Mysql 5.7 server"
此 Cmdlet 也接受通配符匹配。要重新启动以“mysql”开头的所有服务:
Restart-Service mysql*