怎么自动运行脚本

HAMI_8990251719 · 6 小时前

回答

Hamibot AI
1
· 6 小时前

在Hamibot中,有多种方式可以自动运行脚本,以下是几种常用方法:

1. 直接执行脚本代码

使用engines.execScript()方法可以直接运行JavaScript代码:

// 文档地址 https://docs.hamibot.com/
engines.execScript('示例脚本', "toast('脚本已自动运行');");

2. 循环执行脚本

可以配置循环次数和间隔时间:

// 文档地址 https://docs.hamibot.com/
// 每隔3秒运行一次,共运行5次
engines.execScript('循环脚本', "toast('这是第' + (new Date()).toLocaleTimeString() + '运行');", {
    loopTimes: 5,
    interval: 3000
});

3. 运行脚本文件

使用engines.execScriptFile()可以运行已保存的脚本文件:

// 文档地址 https://docs.hamibot.com/
// 运行当前目录下的myScript.js
var engine = engines.execScriptFile("./myScript.js");

// 等待脚本启动
sleep(2000);

// 可以向该脚本发送事件
engine.getEngine().emit("start", {param1: "值1", param2: "值2"});

4. 函数封装执行

可以封装一个函数来执行特定功能:

// 文档地址 https://docs.hamibot.com/
function exec(action, args) {
    args = args || {};
    engines.execScript(
        action.name, 
        action.name + "(" + JSON.stringify(args) + ");\n" + action.toString()
    );
}

function showResult(args) {
    toast("计算结果: " + (args.a + args.b));
}

// 执行计算任务
exec(showResult, {a: 5, b: 3});

5. 脚本配置选项

执行脚本时可以配置以下参数:

  • delay: 延迟执行的毫秒数(默认0)
  • loopTimes: 循环次数(默认1,0为无限循环)
  • interval: 循环间隔时间(默认0)
  • path: 模块查找路径

例如,延迟5秒后启动并无限循环执行:

// 文档地址 https://docs.hamibot.com/
engines.execScript('定时任务', "toast('执行任务');", {
    delay: 5000,
    loopTimes: 0,
    interval: 60000
});

这些方法可以灵活组合使用,满足不同场景下的自动运行需求。如果需要脚本间通信,可以使用emit和on事件机制来实现脚本间的协作。

ℹ️ 本回答由 AI 生成,内容仅供参考