Вверху моей головы, вы можете проверить, работает ли конкретная служба, как упомянуто bmargulies, используя команду «net», передавая результат в «find».
Что-то вроде следующего будет проверять, работает ли служба, и если это так, остановите ее. Затем вы можете запустить его, не беспокоясь о том, запущен он или нет:
net start | find "SomeService"
if ERRORLEVEL 1 net stop "SomeService"
net start "SomeService"
Если вы используете findstr для поиска, как предлагали некоторые другие ответы, то вы бы проверили ERRORLEVEL равным 0 (нулю) ... если это так, то вы нашли строку, в которой находитесь ищу:
net start | findstr "SomeService"
if ERRORLEVEL 0 net stop "SomeService"
net start "SomeService"
По существу, большинство команд DOS устанавливают ERRORLEVEL, что позволяет вам проверить, удалось ли что-то вроде поиска.