Я создаю пакетный файл для запуска нескольких служб, вместо того, чтобы перечислять каждый "чистый запуск" с точным именем службы, как я могу создать сценарий для запуска "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