如何仅使用服务名称的片段在 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*
我该怎么做?
使用 PowerShell 非常简单:
Start-Service
并且Remove-Service
工作相同,后者仅从 PowerShell 6 开始可用。在这里找到了解决方案(仅适用于终止服务)