17

В настоящее время мы настроили.BAT-файл, в котором перечислены все службы для их запуска / остановки, например.

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

Мы постоянно добавляем новые сервисы, и их список постоянно растет, и обслуживать командный файл сложно.

Можно ли использовать WILDCARD типа «SC start SERVICE *» или что-то в этом роде?

3 ответа3

16

Вы можете использовать подстановочный синтаксис 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 /? для получения дополнительной информации.

11

Легко, с помощью Powershell:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service
0

если вы хотите команду One Line,

Вы можете использовать командлет Restart-Service , предварительно встроенный в powershell.

Чтобы использовать Restart-Service, просто вызовите командлет с именем службы:

Restart-Service mysql57

Чтобы перезапустить несколько сервисов, просто укажите имя каждого сервиса через запятую:

Restart-Service mysql57,apache

При желании добавьте параметр -displayname и укажите вместо него отображаемое имя службы (имя, отображаемое в оснастке «Службы»):

Restart-Service -displayname "Mysql 5.7 server"

Этот командлет также принимает подстановочные знаки. Чтобы перезапустить все службы, начинающиеся с "mysql":

Restart-Service mysql*

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .