Как остановить процесс из .BAT файла? - PullRequest
25 голосов
/ 22 мая 2010

Итак, у меня есть процесс, который я начал с одного файла bat.Как остановить это от другого?

Ответы [ 5 ]

38 голосов
/ 22 мая 2010

Чтобы завершить процесс, имя которого вы знаете, попробуйте:

taskkill /IM notepad.exe

Это попросит закрыть его, но может отказать, предложить "сохранить изменения" и т. Д. Если вы хотите принудительноубей его, попробуй:

taskkill /F /IM notepad.exe
4 голосов
/ 02 февраля 2015

Поскольку TASKKILL может быть недоступен в некоторых версиях Windows Home / basic, здесь есть несколько альтернатив:

TSKILL processName

или

TSKILL PID

Помните, что processName не должен иметь суффикса .exe и ограничен 18 символами.

Другой вариант: WMIC:

wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate

wmic предлагает еще большую гибкость, чем taskkill. С wmic Path win32_process get вы можете увидеть доступные файлы, которые вы можете отфильтровать.

1 голос
/ 22 мая 2010

Когда вы запускаете процесс из пакетного файла, он запускается как отдельный процесс без подсказки для запускающего его пакетного файла (поскольку это могло бы закончиться в то же время, такие вещи, как идентификатор родительского процесса, не помогут вы).

Если вы знаете имя процесса, и оно уникально среди всех запущенных процессов, вы можете использовать taskkill, как предлагает @IVlad в комментарии.

Если он не уникален, вы можете посмотреть на работу. Они завершают все порожденные дочерние процессы, когда они завершаются.

0 голосов
/ 21 сентября 2017

taskkill / F / IM notepad.exe это лучший способ убить задачу из диспетчера задач.

0 голосов
/ 06 декабря 2016

Почему вы не используете PowerShell?

Stop-Process -Name notepad

А если вы находитесь в командном файле:

powershell -Command "Stop-Process -Name notepad"
powershell -Command "Stop-Process -Id 4232"
...