MuleRun可通过五种方式实现文件到达后自动重命名:一、文件系统监听器实时触发;二、调度器定时扫描+条件过滤;三、解析文件内容动态生成名称;四、集成Bulk Rename Utility配置文件;五、CLI联动Windows任务计划程序。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望MuleRun在文件到达指定目录后自动触发重命名流程,而非手动执行,可通过配置事件监听与规则驱动工作流实现。以下是设置自动重命名的具体步骤:
一、启用文件系统事件监听器并绑定重命名流程
该方法利用MuleRun Runtime内置的FileSystem Listener组件,实时捕获目标路径下的文件创建事件,并自动触发后续重命名逻辑,无需人工干预。
1、在MuleRun工作流画布中拖入【File System Listener】节点。
2、双击配置:在“Directory”字段填写监控路径,例如:C:\incoming\documents;勾选“Process on Create”和“Recursive”选项。
3、将Listener节点输出连接至【Execute Command】节点,用于调用重命名脚本。
4、在Execute Command节点中输入命令:powershell -Command "Get-ChildItem '%filename%' | Rename-Item -NewName { 'AUTO_' + $_.BaseName + '_' + (Get-Date -Format 'yyyyMMdd') + $_.Extension }"。
5、保存并部署该工作流,确保MuleRun服务处于运行状态。
二、使用MuleRun调度器定时扫描+条件触发重命名
当文件写入存在延迟或需避开高峰时段时,可配置周期性扫描任务,结合文件属性(如修改时间、大小)判断是否满足重命名条件,提升执行稳定性。
1、添加【Scheduler】节点,设置Cron表达式,例如:0 0/5 * * * ?(每5分钟执行一次)。
2、接入【File List】节点,配置路径为待处理目录,并勾选“Include Subdirectories”。
3、连接【Filter Files】节点,在“Condition”栏输入:$.lastModified < (new Date().getTime() - 300000) && $.size > 0(排除5分钟内新建且非空文件)。
4、将过滤后的文件列表传入【For Each】循环节点,内部嵌套【Rename File】标准操作。
5、在Rename File节点中设置新名称表达式:"PROCESSED_" + #[payload.filename.substring(0, payload.filename.lastIndexOf('.'))] + "_" + java.time.LocalDate.now().toString() + payload.filename.substring(payload.filename.lastIndexOf('.'))。
三、基于文件内容特征动态生成新名称
适用于需依据文件内部结构(如PDF标题、Excel首行、文本关键词)生成语义化名称的场景,通过MuleRun内置解析器提取关键信息并构造命名规则。
1、在监听或调度流程后接入【Parse File Content】节点,选择对应解析器(如PDF Parser、CSV Reader、Text Extractor)。
2、配置提取字段:对PDF文件勾选“Extract Title”,对Excel文件设置“Read First Row as Header”并提取列名“DocumentID”。
3、接入【Transform Message】节点,使用DataWeave脚本构建新文件名:payload.title replace /[^a-zA-Z0-9]/ with '_' ++ '_' ++ payload.documentID ++ '.pdf'。
4、将输出结果传入【Rename File】节点,目标路径设为原文件所在目录,新名称字段绑定DataWeave输出变量。
5、确保目标目录具有写权限,且原始文件未被其他进程锁定。
四、集成Bulk Rename Utility配置文件实现复杂规则自动执行
对于含正则替换、大小写转换、多级嵌套逻辑的重命名需求,可复用Bulk Rename Utility预设的.bru配置文件,由MuleRun按事件或定时调用其命令行接口。
1、在Bulk Rename Utility图形界面中完成全部规则配置(如删除前缀“tmp_”、将所有字母转大写、扩展名统一为“.dat”)。
2、点击【Save Settings】导出为:C:\bru_configs\auto_clean.bru,并确认勾选“Auto Rename on Load”。
3、在MuleRun中添加【Execute Command】节点,命令内容为:"C:\Program Files\Bulk Rename Utility\BRU.exe" /load:"C:\bru_configs\auto_clean.bru" /run /quiet。
4、将该节点置于文件监听流程末端,或挂载于调度器下游。
5、检查MuleRun日志中BRU.exe进程退出码是否为0,确认执行成功。
五、通过MuleRun CLI与Windows任务计划程序协同实现跨会话自动重命名
当MuleRun以服务模式运行但需在用户登录上下文中访问GUI类工具(如依赖桌面会话的重命名软件)时,可借助Windows任务计划程序触发CLI命令,绕过会话隔离限制。
1、编写批处理脚本rename_trigger.bat,内容为:mulerun-cli trigger --flow-id auto_rename_flow --param target_dir=C:\watched。
2、打开Windows任务计划程序,创建基本任务,触发器设为“当文件或文件夹更改时”,目标路径为:C:\watched。
3、操作设置为“启动程序”,程序/脚本字段填入:C:\scripts\rename_trigger.bat。
4、在“常规”选项卡中勾选“不管用户是否登录都要运行”和“不存储密码”(若使用本地系统账户)。
5、确保MuleRun CLI已全局注册,且对应flow已在MuleRun服务器中启用并配置了target_dir参数接收能力。

















