Preciso encerrar um software sempre que ele for transcodificado um arquivo de filme. Para automatizar isso, criei um pequeno script em lote. Nele tentei usar o taskkill assim:
taskkill /im taskname.exe /t /f
Mas sempre recebo a seguinte mensagem de erro: ERRO: O processo com PID 6708 não pôde ser finalizado. Motivo: não há nenhuma instância em execução da tarefa.
Também tentei iniciar a janela cmd como administrador e também tentei o PowerShell. Mas quando faço a lista de tarefas depois, ela ainda mostra a tarefa.
O engraçado é que a tarefa é encerrada instantaneamente quando clico com o botão direito nela no gerenciador de tarefas e finalizo a tarefa. Qual comando a "tarefa final" chama no gerenciador de tarefas? Algo que posso usar para automatizar um arquivo em lote?
Responder1
Como sugerido porbarlopeo aplicativo de linha de comando de terceiros nircmd.exe fez o trabalho!
nircmd.exe killprocess processname
Responder2
Se você não pode eliminá-lo pelo nome, mas possui o ID do processo, você pode tentar eliminá-lo pelo 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%