
工作流自动化任务调度桌面应用【免费下载链接】AUTO-MAS多脚本多配置统一管理与自动化工具 | 轻松管理大量脚本并存储多个用户配置、设计自动化任务流、监看脚本日志大幅提高自动化代理效率与稳定性项目地址https://gitcode.com/gh_mirrors/au/AUTO-MAS点击查看免费下载AUTO-MAS 是一款多脚本多配置统一管理与自动化工具它的表达式引擎extract expression让你在日志监控、推送采集与任务成败判定中用一行$()语法加内置函数链就能把复杂调度条件写进自动化任务流。本文面向新手用真实游戏日志带你快速上手从最基础的提取语法到环视排除、多字段拼接、多行聚合等 7 个进阶技巧并给出常见坑与调试路径让你少走弯路。一、表达式引擎在哪里发挥作用AUTO-MAS 的表达式引擎源码位于 app/utils/expression/为自动化任务流提供三种核心能力推送日志采集规则先用「匹配正则」过滤日志行再用$()提取表达式精确取出要推送的字段。各游戏任务内置的采集规则可参考 app/task/ZzzOd/push_log.py、app/task/MaaEnd/push_log.py多行聚合跨越多行的任务信息如 BetterGI 一条龙任务用起始/结束正则圈定「窗口」再在窗口里提取并拼接字段成功/失败标志匹配Script.SuccessLog/Script.ErrorLog配置按 Split关键字包含或 Regex正则模式判定任务成败是调度器里最常用的「调度条件」之一实现见 app/utils/LogPatternExtractor.py。二、先搞懂$()语法与 3 种拼接$(正则)正则提取作用域。只有捕获组()里的内容才会被提取多个捕获组按顺序用换行拼接文本字面量原样输出支持\、\\、\n、\t转义常用于加前缀/后缀同行拼接——左右片段拼在同一行;换行拼接——左右片段各占一行。⚠️ 关键规则同一行内所有$()必须全部命中该行才会输出任一未命中则整行跳过。这正是复杂调度条件的实现基础。以 ZzzOd绝区零一条龙的采集规则为例app/task/ZzzOd/push_log.py 中的写法匹配正则指令\[ (.?) \] 执行成功 提取表达式OK:体力刷本| $((?:返回状态 剩余电量 )(\d))命中指令[ 体力刷本 ] 执行成功 返回状态 剩余电量 187时输出OK:体力刷本|187。三、技巧一函数链——正则取不到的用内置函数掐头去尾AUTO-MAS 表达式内置 9 个文本处理函数可像 Excel 函数一样用.串联成函数链。核心思路用正则负责「圈出字段」用函数负责「改写字段」。函数用法说明cut.cut(num)切除首尾字符正数去头、负数去尾get.get(num)保留首尾字符正数留头、负数留尾sub.sub(start, end)提取两位置间文本从 1 计数负数倒数cutby.cutby(定位文本, 0/1, 0/1, 序号)按文本定位截断去头/去尾、留/删定位文本、第几次出现subby.subby(首, 末, 0/1, 0/1, 序号, 序号)提取两段文本之间的内容replace.replace(旧, 新)替换子串trim.trim()去除首尾空白upper/lower.upper()/.lower()英文转大写 / 小写可选参数都可省略定位文本找不到时函数会跳过处理、返回原文不会报错。当正则不好写时可以让$()取整行文本再衔接函数链定位截断。例如从指令[ 咖啡店 ] 执行成功 返回状态 无需运行中提取指令名✓ $().cutby(指令[ ,0,1).cutby( ],1,1)$()→ 获取整行可多次复用.cutby(指令[ ,0,1)→ 去头并删掉定位文本得咖啡店 ] 执行成功 返回状态 无需运行.cutby( ],1,1)→ 去尾到]得咖啡店✓ → 拼前缀最终✓ 咖啡店进阶逐行前缀。当一个$()提取出多行结果时字面量前缀只会加在第一行。用replace(\n,\n⏸)把每个换行替换成「换行前缀」再在开头补一个前缀即可⏸$(([^])).replace(\n,\n⏸)命中未处理的任务列表 [买信用商店, 刷体力, 活动奖励]时逐行输出⏸买信用商店、⏸刷体力、⏸活动奖励。四、技巧二把排除条件写进调度——环视一次排除多个节点很多调度需求本质是只要 A但要排除 B、C。用否定先行(?!...)可在匹配正则里一次性排除多个不想要的节点源码 app/utils/LogPatternExtractor.py 中匹配正则采用search语义匹配正则指令\[(?!\s*(?:等待大世界画面|返回大世界|前往菜单|体力刷本)).?\] 执行成功 提取表达式✓ $(指令\[\s*(.?)\s*\] 执行成功)(?!\s*(?:...))一次性排除导航/过渡节点推送里不再出现返回大世界这类噪音可排除的名单随你的调度需求任意增减无需改动其他配置坑位提示可选空格要放进环视内部写成(?!\s*通知)写成\s*(?!通知)会因\s*回溯到 0 而失效。失败行带原因同行拼接两个$()全部命中才输出✗ $(指令\[\s*(.?)\s*\] 执行失败) $(返回状态\s(.))输出✗ 切换账号 未配置账号密码。两个片段中任一未命中整行跳过——这本身就是一条必须同时满足的复合调度条件。针对特定节点单独配置匹配正则体力刷本.执行成功 提取表达式✓ 体力刷本 剩余电量 $(剩余电量\s(\d)).执行成功精准命中执行成功行跳过同名的节点行指令名用字面量写死只动态提取剩余电量后的数字。五、技巧三多行聚合——跨行信息拼成一条推送单行模式一行一行处理但许多任务的关键信息分散在多行。用「起始正则 结束正则」圈定一个窗口窗口关闭后把整段内容交给提取表达式提取表达式$((一条龙任务执行: \d/\d)) - $((邮件[^\n]));$((任务结束))$()提取任务进度$()提取邮件内容用拼在同一行$()提取结束标记;让其独占一行窗口内的噪声行如地图特征点加载完成因未命中任何片段被自动过滤。同一时刻只允许一个窗口打开所以一条龙日志里的 1/4~4/4 四段任务一条规则会自动产出 4 条结果。六、技巧四到六3 个最常见的坑附正确写法⚠️ 坑 1裸文本不生效提取表达式中正则必须用$()包裹指令[ 咖啡店 ] 执行成功 ✗ 裸文本不会被识别 $(指令\[\s*(.?)\s*\] 执行成功) ✓ 正确⚠️ 坑 2无捕获组没有输出$()内正则若没有捕获组只会匹配、不提取返回空串导致该行不输出$(任务结束) ✗ 无捕获组返回 $((任务结束)) ✓ 用捕获组包裹整段正则⚠️ 坑 3.默认跨行贪吃$()内正则默认开启DOTALL源码 app/utils/expression/evaluator.py.会跨行$((邮件.)) ✗ 会吞掉后面的所有行 $((邮件[^\n])) ✓ 只取邮件这一行此外提取结果多了或少了多半是贪婪问题——把/*换成非贪婪的?/*?。七、完整调试流程先过滤、再提取、后验证先只配匹配正则提取表达式留空确认要处理的行被正确过滤出来再填提取表达式用$()包住要提取的部分用规则旁的 调试按钮粘贴真实日志行即时验证每一行的命中/未命中状态结果不对时多了 → 试非贪婪?少了 → 检查捕获组与环视写法。规则编辑界面对应 frontend/src/views/EditView/Script/components/LogPatternRule.vue内置文档弹窗对应 frontend/src/views/EditView/Script/LogPatternDocsModal.vue校验与逐行调试入口在 app/utils/LogPatternExtractor.py 的validate_pattern/debug_pattern函数。八、核心路径速查表模块路径表达式解析语法 → ASTapp/utils/expression/parser.py表达式编译与求值app/utils/expression/evaluator.py9 个内置函数实现app/utils/expression/functions.py日志模式匹配器split/regex/多行聚合/成败标志app/utils/LogPatternExtractor.py日志采集会话规则注册、推送app/log_box/collect.py内置采集规则示例ZzzOdapp/task/ZzzOd/push_log.py内置采集规则示例MaaEndapp/task/MaaEnd/push_log.py成功/失败标志配置项app/models/config.py小结 记住三句话$()圈字段、函数链改字段、(?!...)写排除。掌握$() 内置函数 环视排除 多行聚合这四件套你就能把绝大多数复杂调度条件写进 AUTO-MAS 的自动化任务流让推送报告干净、精准、稳定。赞分享工作流自动化任务调度桌面应用【免费下载链接】AUTO-MAS多脚本多配置统一管理与自动化工具 | 轻松管理大量脚本并存储多个用户配置、设计自动化任务流、监看脚本日志大幅提高自动化代理效率与稳定性项目地址https://gitcode.com/gh_mirrors/au/AUTO-MAS点击查看免费下载相关推荐Synology Video Info Plugin群晖影视信息插件完整解决方案Synology Video Info Plugin群晖影视信息插件完整解决方案 你是否厌倦了群晖Video Station有限的影视信息源Synology网页爬虫视频Windows Terminal终极指南从传统控制台到现代化终端的完整进化Windows Terminal终极指南从传统控制台到现代化终端的完整进化 还在为Windows命令行体验的局限性而烦恼吗传统CMD和PowerShell的桌面应用CLI四种方法对比ExplorerPatcher安全卸载与Windows原装界面恢复实操四种方法对比ExplorerPatcher安全卸载与Windows原装界面恢复实操 本文带你走完ExplorerPatcher卸载与恢复的完整流程从备份配置桌面应用逆向工程上一篇RDP Wrapper 免费解锁 Windows 多用户远程桌面rdpwrap.ini 实战手册下一篇Universal Ctags 解析 reStructuredText 内嵌代码块guest 解析器与 code-block 指令实战解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考