在任务管理器中结束任务有效,但在 cmd 中结束任务无效。为什么?

在任务管理器中结束任务有效,但在 cmd 中结束任务无效。为什么?

每次完成电影文件转码后,我都需要终止软件。为了自动执行此操作,我编写了一个小批处理脚本。在其中,我尝试像这样使用 taskkill:

taskkill /im taskname.exe /t /f

但我总是收到以下错误消息:错误:无法终止 PID 为 6708 的进程。原因:该任务没有正在运行的实例。

我还尝试以管理员身份启动 cmd 窗口,也尝试了 PowerShell。但是当我随后执行 tasklist 时,它仍然显示该任务。

有趣的是,当我在任务管理器中右键单击该任务并结束任务时,该任务会立即终止。任务管理器中的“结束任务”调用哪个命令?我可以使用批处理文件中的命令来自动执行该操作吗?

答案1

根据建议巴洛普第三方命令行应用程序 nircmd.exe 完成了这项工作!

nircmd.exe killprocess processname

答案2

如果你无法通过名称杀死它,但是有进程 ID,你可以尝试通过 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%

相关内容