如何在 cmd 中通过引用服务名称来停止、启动和删除 Windows 服务

如何在 cmd 中通过引用服务名称来停止、启动和删除 Windows 服务

如何仅使用服务名称的一部分在 cmd 中停止/启动 Windows 服务。示例:

NET STOP *part_of_name_of_service*
NET START *part_of_name_of_service*

例如。mysql有多个版本的“服务名称”。

MySQL57
wampmysqld
etc, etc, etc

这个想法是停止/启动任何包含单词“mysql”的服务。类似这样的:

net start *MySQL*

但不幸的是,我的尝试产生了错误:“服务名称无效”。

尝试:

1.使用以下命令将服务名称转储到文件中:

REG QUERY "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services" > services.txt
findstr /i /r "mysql" services.txt
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MySQL
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\wampmysqld64

但我无法完成循环

2.使用taskkill

call :winservices "*mysql*"

:: funcion winservices
@echo off
  goto:eof
  :winservices
  set winservices=%1
   taskkill /f /im "%winservices%" /t
  goto:eof

"*mysql*"不起作用(仅"mysql*"起作用)

尝试删除服务时也会发生同样的情况:

sc delete *MySQL*

我该怎么做呢?

答案1

使用 PowerShell 非常简单:

Stop-Service *mysql*

Start-Service并且Remove-Service工作相同,后者仅从 PowerShell 6 开始可用。

答案2

找到了解决方案这里(仅适用于终止服务)

taskkill /FI "IMAGENAME eq httpd*" /T /F
taskkill /FI "IMAGENAME eq mysql*" /T /F

相关内容