在Power Automate中批量重命名SharePoint文件以修改日期格式
在Power Automate中批量重命名文件(DD- MM- YYYY 转 YYYY-MM-DD格式)
需求说明
当前文件名格式:
DD- MM- YYYY Title of Document
目标文件名格式:YYYY-MM-DD Title of Document
示例:原文件名28- 02- 2022 John Smith is ready for service→ 修改为2022-02-28 John Smith is ready for service
具体实现步骤
1. 创建触发流
- 选择手动触发云流(按需执行)或计划云流(定时批量处理),完成基础触发配置。
2. 获取目标文件夹文件列表
- 添加「获取文件属性(仅属性)」动作,选择要处理的文件所在的SharePoint/OneDrive文件夹。
- 如需过滤文件,可在该动作的「筛选查询」中设置规则(例如仅处理包含特定日期格式的文件)。
3. 遍历文件列表
- 添加「应用到每一个」动作,将上一步输出的「值」(即文件列表)作为输入对象。
4. 拆分并转换日期格式
在「应用到每一个」内部依次添加以下表达式动作:
- 提取日:
replace(split(items('Apply_to_each')?['Name'], ' ')[0], '-', '')
作用:拆分文件名后提取第一部分,去掉末尾的-,得到纯数字日期(如28)。 - 提取月:
replace(split(items('Apply_to_each')?['Name'], ' ')[1], '-', '')
作用:拆分文件名后提取第二部分,去掉末尾的-,得到纯数字月份(如02)。 - 提取年:
split(items('Apply_to_each')?['Name'], ' ')[2]
作用:拆分文件名后提取第三部分,得到年份(如2022)。 - 组合新日期:
concat(outputs('提取年'), '-', outputs('提取月'), '-', outputs('提取日'))
作用:按YYYY-MM-DD格式拼接日期(如2022-02-28)。
5. 提取标题部分
添加表达式动作:join(skip(split(items('Apply_to_each')?['Name'], ' '), 3), ' ')
作用:跳过文件名前三个日期相关的部分,将剩余内容用空格拼接,得到文件标题(如John Smith is ready for service)。
6. 组合新文件名
添加「组合」动作,输入内容为:concat(outputs('组合新日期'), ' ', outputs('提取标题部分'))
作用:将新日期和标题拼接成最终的目标文件名。
7. 执行重命名
添加「重命名文件」动作:
- 选择「文件标识符」为当前遍历的文件ID(来自「应用到每一个」的动态内容);
- 「新文件名」填入上一步的组合结果。
注意事项
- 若原文件名中年份为两位(如
28- 02- 22),需将提取年的表达式改为concat('20', split(items('Apply_to_each')?['Name'], ' ')[2]),将两位年份转为四位。 - 首次测试时选择少量文件验证,避免批量操作出错。
- 确保流拥有目标文件夹的修改权限。
内容的提问来源于stack exchange,提问作者Summer
相关产品推荐
相关产品推荐

