como parar/iniciar um serviço do Windows no cmd com apenas um fragmento do nome do serviço. Exemplo:
NET STOP *part_of_name_of_service*
NET START *part_of_name_of_service*
Por exemplo. mysql tem muitas versões do "nome do serviço".
MySQL57
wampmysqld
etc, etc, etc
A ideia é parar/iniciar qualquer serviço que contenha a palavra "mysql". Algo parecido:
net start *MySQL*
Mas infelizmente minha tentativa gera erro: "O nome do serviço não é válido".
Tentativas:
1. Despeje os nomes dos serviços em um arquivo com o seguinte comando:
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
mas não consegui completar o loop
2. Com taskkill
call :winservices "*mysql*"
:: funcion winservices
@echo off
goto:eof
:winservices
set winservices=%1
taskkill /f /im "%winservices%" /t
goto:eof
Mas "*mysql*"
não funciona (só "mysql*"
funciona)
O mesmo acontece ao tentar excluir o serviço:
sc delete *MySQL*
como faço isso?
Muito simples com o PowerShell:
Start-Service
eRemove-Service
funcionam da mesma forma, o último só está disponível a partir do PowerShell 6.encontrei uma solução aqui (apenas para o serviço kill)