我使用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
答案 0 :(得分:0)
在exit
的末尾添加run_program.bat
就可以了。现在,一旦程序被杀死,窗口就会关闭。
这是我最终使用的代码,适用于我的应用程序:
@echo off
:Loop
start run_program.bat
timeout 2700
Taskkill /IM program.exe /F
timeout 3
goto Loop
谢谢大家的建议