Завершение задачи в диспетчере задач работает, а taskkill в cmd — нет. Почему?

Завершение задачи в диспетчере задач работает, а taskkill в cmd — нет. Почему?

Мне нужно завершать работу программного обеспечения каждый раз, когда оно заканчивает перекодирование файла фильма. Чтобы автоматизировать это, я создал небольшой пакетный скрипт. В нем я попытался использовать 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%

Связанный контент