首页 > 解决方案 > taskkill 关闭窗口和 for 循环过早结束

问题描述

我制作了一个带有for循环的批处理文件(start_loop.bat),该循环运行另一个批处理文件(run_program.bat)并在45分钟后将其杀死。这是我的代码:

@echo off
FOR %%A IN (1,1,100) DO (
start run_program.bat
timeout 2700
Taskkill /IM program.exe /F
timeout 3
)
call start_loop.bat

一切正常,但 Taskkill 在杀死程序后不会关闭 cmd 窗口。这没什么大不了的,但过了一段时间,我最终打开了很多我不需要的窗户。是否有一个选项可以传递给 taskkill 以关闭窗口?

另外,我必须添加

call start_loop.bat

最后,因为经过几个循环“start_loop.bat”过早结束。保持它的生命是正确的方法吗?有没有更好的办法?

谢谢

在一些评论后编辑:

1-循环应该永远运行

2-“野蛮”关闭正在运行的程序也没关系

3-批处理文件工作正常。程序按预期终止,新实例按预期启动。只是cmd窗口没有关闭

4-run_program.bat只需运行program.exe一些选项,例如:

program.exe option1 option2

标签: batch-filecmdtaskkill

解决方案


exit在末尾添加就可以run_program.bat了。现在,一旦程序被杀死,窗口就会关闭。这是我最终使用的代码,并且非常适合我的应用程序:

@echo off
:Loop
start run_program.bat
timeout 2700
Taskkill /IM program.exe /F
timeout 3
goto Loop

谢谢大家的建议


推荐阅读