Как остановить процесс из.BAT файла?

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

9 ответов

Решение

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

taskkill /IM notepad.exe

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

taskkill /F /IM notepad.exe

Поскольку 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 Вы можете увидеть доступные поля, которые вы можете отфильтровать.

I just wanted to kill all instances of Chrome when the browser won't open (recent Chrome annoying bug). You can end up with a bunch of chrome.exe processes running from 2 to ?. I just did a clean and quick check to see if it's running and kill it if it is. The pause at the end is only so I can view the results, it isn't needed.

      @echo off
:again
taskkill /F /IM "chrome.exe"
if errorlevel=0 goto end
if errorlevel=1 goto again
:end
pause

it works well for me

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

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

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

Вы можете сделать два командных файла. Один назвал runtaskkill.bat, а другой - taskkillapp.bat. В файл runtaskkill.bat добавьте следующий код:

call runtaskkill.bat [filenamehere].

И в taskkill.bat:

taskkill /f /im %1.

Просто убедитесь, что два файла находятся в одном каталоге (папке).

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

Вот как убить один или несколько процессов из файла.bat.

Шаг 1. Откройте предпочтительный текстовый редактор и создайте новый файл.

шаг 2. Чтобы убить один процесс, используйте команду 'taskkill' с параметром '/im', который указывает имя образа процесса, который нужно завершить. Пример:

taskkill /im examplename.exe

Чтобы "принудительно" убить процесс, используйте параметр "/f", который указывает, что процессы должны быть принудительно завершены. Пример:

taskkill /f /im somecorporateprocess.exe

Чтобы прервать более одного процесса, промойте и повторите первую часть шага 2. Пример:

taskkill /im examplename.exe
taskkill /im examplename1.exe
taskkill /im examplename2.exe

или

taskkill /f /im examplename.exe
taskkill /f /im examplename1.exe
taskkill /f /im examplename2.exe

Шаг 3. Сохраните файл в желаемом месте с расширением.bat.

Шаг 4. Щелкните вновь созданный файл bat, чтобы запустить его.

Чтобы просто щелкнуть файл и запустить без сообщения "нажмите любую клавишу, чтобы продолжить"

      @echo off
call taskkill /f /im adb.exe /im OfficeClickToRun.exe
pause>nul
exit /b 0

добавить любое количество процессов:

the_process_name.exe

КОНЧИК:

Создайте ярлык файла .bat где- нибудь (вы можете перетащить его в меню «Пуск» / «Все программы»), перейдите в свойства файла ярлыка и добавьте клавишу быстрого доступа .

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

Stop-Process -Name notepad

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

powershell -Command "Stop-Process -Name notepad"
powershell -Command "Stop-Process -Id 4232"
Другие вопросы по тегам