如何使用Power Automate从OneDrive读取文件并筛选含EMPTY的行生成新文件
Power Automate 实现OneDrive文本文件筛选保存方案
核心步骤(按流的执行顺序)
- 触发流:选择「手动触发流」(方便测试,也可按需换成定时/文件创建触发)
- 读取目标文件:添加「OneDrive for Business - 获取文件内容」动作,选定要读取的文本文件(确保文件路径准确)
- 分割文本为行数组:添加「撰写」动作,输入公式拆分文本内容:
该公式会将读取到的文本按换行符分割为每行一个元素的数组split(body('获取文件内容'), decodeUriComponent('%0A')) - 筛选含"EMPTY"的行:添加「筛选数组」动作,设置:
- 输入:选择上一步「撰写」的输出
- 条件:
item()「包含」'EMPTY'
若需忽略大小写匹配,可将条件改为toLower(item())「包含」'empty'
- 合并筛选结果为文本:再添加一个「撰写」动作,用公式把筛选后的数组重新拼接成带换行的文本:
join(body('筛选数组'), decodeUriComponent('%0A')) - 保存新文件到OneDrive:添加「OneDrive for Business - 创建文件」动作,设置:
- 文件夹路径:选定目标保存文件夹
- 文件名:自定义(比如
筛选后_EMPTY记录.txt) - 文件内容:选择上一步「撰写」的输出
常见问题排查
- 筛选后无结果:检查原文件中"EMPTY"的大小写是否和筛选条件一致,或是否存在多余空格;可在「分割文本」步骤后加「撰写」动作输出数组,确认每行内容是否正确拆分
- 换行符异常:把公式中的
decodeUriComponent('%0A')换成'\n'尝试,部分环境下换行符编码可能不同 - 包含空白行:在「筛选数组」里追加条件,同时排除空行,比如新增条件
item()「不等于」''
内容的提问来源于stack exchange,提问作者Whiskeythefox




