У меня есть командный файл, в котором используется taskkill
чтобы остановить несколько сервисов. Команды выглядят так:
taskkill /s \\myServer /f /fi "Services eq MyService"
Проблема в том, что каждая команда занимает очень много времени (около 1 минуты). Поскольку таких команд несколько, командный файл работает очень медленно.
Есть ли способ ускорить taskkill
?
Попробуйте использовать sc stop
вместо того, чтобы убить сервис. Это предпочтительный метод.
http://technet.microsoft.com/en-us/library/cc742107(WS.10).aspx
В дополнение к тому, что сказал @pk, если вы должен используйте taskkill, вы можете создать один bat-файл для каждой задачи, которую нужно убить, а затем создать bat-файл для вызова каждого пакетного файла.
По-прежнему будет медленно завершаться каждое задание, но они будут выполняться одновременно, ускоряя ваш полный скрипт.
Должно выглядеть примерно так:
cmd /c c:\bat\killbatch1.bat
cmd /c c:\bat\killbatch2.bat
cmd /c c:\bat\killbatch3.bat
Я пробовал переключиться на sc
но это было также очень медленно. Есть некоторая основная проблема (возможно, связанная с сетью?), Но я не смог ее найти.
В итоге я переместил код остановки службы в сценарий .vbs с помощью WMI, используя информацию Вот.