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