如何通过Power Automate手动触发流复制SharePoint对应编号的文件
需求说明
将SharePoint站点source_folder中的文件(如abc 1000.xlsx、def 1001.xlsx)复制到dest_folder下对应编号的子文件夹(如1000、1001),每个子文件夹存放对应编号的文件。
实现步骤
创建手动触发流
- 打开Power Automate,新建手动触发的云流,命名为你易识别的名称(如「按编号分类复制SharePoint文件」),无需添加额外触发输入,直接进入下一步。
获取源文件夹所有文件
- 添加SharePoint连接器的列出文件夹中的文件动作:
- 站点地址:选择目标SharePoint站点
- 文件夹路径:指定
source_folder的完整路径
- 添加SharePoint连接器的列出文件夹中的文件动作:
遍历所有文件
- 添加应用到每一个控件,选择上一步输出的「值」(即所有文件的集合),后续操作都在这个控件内执行。
提取文件名中的编号
- 添加撰写动作,使用表达式提取文件名中的数字编号:
- 通用正则表达式(适配各类含数字的文件名):
first(matches(items('应用到每一个')?['Name'], '\d+')) - 空格分隔专属表达式(适配
前缀 编号.xlsx格式):last(split(split(items('应用到每一个')?['Name'], '.xlsx')[0], ' '))
- 通用正则表达式(适配各类含数字的文件名):
- 前者通过正则匹配提取连续数字段,后者先拆分文件名后缀,再按空格拆分取最后一段(即编号)。
- 添加撰写动作,使用表达式提取文件名中的数字编号:
确保目标子文件夹存在
- 添加SharePoint连接器的创建文件夹动作:
- 站点地址:同目标SharePoint站点
- 文件夹路径:指定
dest_folder的完整路径 - 文件夹名称:选择上一步「撰写」的输出(即提取到的编号)
- 点击动作右上角「...」→「配置运行后设置」,选择「失败时」→「继续」,避免因文件夹已存在导致流中断。
- 添加SharePoint连接器的创建文件夹动作:
复制文件到目标子文件夹
- 添加SharePoint连接器的复制文件动作:
- 当前站点地址:源SharePoint站点(与目标站点一致则直接选择)
- 文件标识符:选择「应用到每一个」中的「文件标识符」
- 目标站点地址:同目标站点
- 目标文件夹:输入
dest_folder/@{outputs('撰写')}(自动拼接目标子文件夹路径) - 复制行为:根据需求选择「替换」或「不替换」已存在的文件
- 添加SharePoint连接器的复制文件动作:
注意事项
- 确保Power Automate连接账户拥有
source_folder的读取权限和dest_folder的写入权限 - 如果文件名编号格式特殊(如带前缀、位数不固定),需调整提取编号的表达式
- 首次测试建议选择少量文件验证,避免批量操作出错
内容的提问来源于stack exchange,提问作者newbie2024
相关产品推荐
相关产品推荐

