Мне нужно завершать работу программного обеспечения каждый раз, когда оно заканчивает перекодирование файла фильма. Чтобы автоматизировать это, я создал небольшой пакетный скрипт. В нем я попытался использовать taskkill следующим образом:
taskkill /im taskname.exe /t /f
Но я всегда получаю следующее сообщение об ошибке: ОШИБКА: Не удалось завершить процесс с PID 6708. Причина: Нет запущенного экземпляра задачи.
Я также пробовал запустить окно cmd от имени администратора и также пробовал PowerShell. Но когда я делаю tasklist после этого, он все еще показывает задачу.
Забавно, что задача мгновенно завершается, когда я нажимаю на нее правой кнопкой мыши в диспетчере задач и завершаю задачу. Какую команду вызывает "завершить задачу" в диспетчере задач? Что-то, что я могу использовать для автоматизации в пакетном файле?
решение1
Как и предполагалбарлопстороннее приложение командной строки nircmd.exe справилось с этой задачей!
nircmd.exe killprocess processname
решение2
Если вы не можете завершить процесс по имени, но знаете его идентификатор, попробуйте завершить его по идентификатору процесса (PID):
for /f "delims== tokens=2" %%i in ('WMIC process where "Name='process.exe'" get ProcessId /value') do set pid=%%i
echo Going to kill PID: %pid%
taskkill.exe /PID %pid%