как остановить / запустить службу Windows в cmd с помощью только фрагмента имени службы. Пример:
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 очень просто:
Stop-Service *mysql*
Start-Service
и Remove-Service
работают так же, последний доступен только начиная с PowerShell 6.