You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改批处理文件,仅在iMacros脚本运行超2分钟时自动关闭?

解决iMacros脚本的批处理监控重启需求

我来帮你调整这个批处理脚本,完全贴合你要的逻辑——监控脚本运行时长,超过2分钟就停止重启循环,否则等60秒重新启动。

下面是修改后的完整代码:

@echo off
setlocal enabledelayedexpansion

:start
:: 切换到脚本所在目录,确保路径正确
cd /d C:\filepath

:: 启动iMacros脚本并等待它执行完成/失败退出
:: 注意:如果直接运行.iim文件有问题,换成iMacros主程序启动命令,比如:
:: start /wait "" "C:\Program Files\iMacros\iMacros.exe" -macro "program.iim"
start /wait "" "program.iim"

:: 记录脚本启动和结束的时间,计算运行时长(转换为秒)
set "start_time=%time%"
for /f "tokens=1-4 delims=:. " %%a in ("%start_time%") do (
    set /a "start_total=%%a*3600 + %%b*60 + %%c"
)
for /f "tokens=1-4 delims=:. " %%a in ("%time%") do (
    set /a "end_total=%%a*3600 + %%b*60 + %%c"
)

:: 处理跨午夜的特殊情况(结束时间早于开始时间,说明过了0点)
if !end_total! lss !start_total! (
    set /a "end_total+=86400"
)
set /a "run_duration=!end_total! - !start_total!"

:: 核心判断逻辑:超过2分钟(120秒)则退出,否则等待60秒重启
if !run_duration! gtr 120 (
    echo 脚本运行时长超过2分钟,判定为成功完成,批处理即将退出。
    pause
    exit /b
) else (
    echo 脚本运行时长为!run_duration!秒(未超过2分钟),将在60秒后重启...
    timeout /t 60 /nobreak >nul
    goto start
)

关键逻辑说明:

  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保在循环和条件判断里能实时读取变量的最新值,避免批处理的变量替换问题。
  • start /wait:用这个命令启动脚本并等待它完全退出,这样我们才能准确获取脚本的运行起止时间。如果你的.iim文件需要通过iMacros主程序启动,记得替换成对应的启动命令(代码里有注释提示)。
  • 时间计算:把开始和结束时间都转换成当天的总秒数,还处理了跨午夜的情况(比如脚本在23:59启动,00:01结束),避免时长计算出错。
  • 时长判断:如果脚本运行超过120秒(2分钟),就输出提示并退出批处理;否则等待60秒后跳回start标签,重新启动脚本。

内容的提问来源于stack exchange,提问作者Shardinar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:06:56