在终止时关闭由批处理文件打开的文件

时间:2018-07-26 13:42:59

标签: batch-file

使用任务计划程序时,如果运行批处理程序,则在结束脚本时,它仅关闭批处理文件,而不关闭由批处理文件生成的程序。

是否有一种方法可以在该批处理会话收到终止命令时关闭该批处理会话打开的所有程序?

例如

echo started: %date% %time% >> log.txt
calc
timeout 5
echo ended: %date% %time% 
taskkill /im win32calc.exe

当试图强制关闭时,是否可以批量运行taskkill命令(或另一种方法来关闭所有生成的进程)。

在python中,可以使用try/finally完成,如下所示: try: ... finally: killtask('win32calc') finally始终在哪里运行,无论如何。

with open 'calc.exe': # run some code

1 个答案:

答案 0 :(得分:2)

我认为可以通过修改this answer来实现您想要的行为,即:

rem Start the process that will kill the calc.exe program after 5 seconds
start "WaitingToKill" cmd /C timeout /t 5 ^& taskkill /im calc.exe /f

rem Run the calc.exe program and wait for it to terminate
calc.exe

rem If calc.exe ends before 5 seconds, kill the killer process and terminate
taskkill /fi "WINDOWTITLE eq WaitingToKill" /f