Назад | Перейти на главную страницу

как мне создать однострочную команду, используя «sc start» или «net start» для служб, имена которых соответствуют шаблону?

Я создаю пакетный файл для запуска нескольких служб, вместо того, чтобы перечислять каждый "чистый запуск" с точным именем службы, как я могу создать сценарий для запуска "net start" для любой службы, которая начинается с "EED"

Спасибо.

Вот командный файл для этого:

@Echo Off
for /f "tokens=1,2" %%i in ('sc query') do if "%%i"=="SERVICE_NAME:" call :Process %%j
Goto :EOF

:Process
set @Name=%1
if "%@Name:~0,3%"=="EED" (SC start %1
Echo %1 Started)

:EOF

Если вы хотите изменить «поиск по префиксу», измените строку, которая гласит:

if "%@Name:~0,3%"=="EED" (SC start %1

Префикс для поиска - это «EED», и вы должны убедиться, что вы изменили номер длины, который является частью «~ 0,3» ... если вы хотите, чтобы все службы, начинающиеся с «Exchange», измените это число до "~ 0,8"

HTH,

Гленн

Цикл FOR-IN-DO - это один из способов сделать это.

FOR %%x in ("Service 1" "Service 2" "Service ...") DO net start %%x

Синтаксис может различаться в зависимости от имени службы и дополнительных параметров. Конечно, это не соответствует вашему требованию перечислять список на основе имен служб, начинающихся с «EED». Вам придется перечислить каждую службу отдельно или использовать более сложный код для этого. Тип FOR /? в командной строке для получения дополнительных сведений о расширенных параметрах, предоставляемых этой командой.

Если вы готовы использовать PowerShell вместо пакетного файла, этот лайнер исправит вас.

Get-Service EED* | Start-Service