浏览 AI 知识库
批量重命名文件脚本:先预览映射、试跑 10 个再全量执行
批量重命名前先生成新旧映射,检查重名,再用少量文件试跑。真正可靠的脚本不仅能改名,还能说明改了什么以及怎样恢复。
按实际操作顺序推进
每完成一段就检查当前输出,确认结果符合预期后再继续。
600 个文件一次改名,最怕的不是失败,而是静默覆盖
脚本要把 600 张图片按日期重命名,一次运行后有 23 个同名文件被覆盖。原文件名与新文件名没有映射,无法恢复。
- 新旧名称映射完整
- 十个样本可正向与反向执行
- 源文件未被覆盖
动手前,把材料和不能改的部分定下来
| 需要确认 | 本例内容 |
|---|---|
| 现有材料 | 测试目录 600 个 JPG,文件名含日期与序号;目标格式 `20260922-001.jpg`;部分 EXIF 日期缺失。 |
| 不能越过的边界 | 先只生成映射,不改文件;检查冲突、非法字符和缺失;复制小样本试跑;保留可逆映射。 |
| 要交付的结果 | 新旧名称映射、试跑和回滚结果 |
批量重命名文件脚本,从“冻结文件清单”开始做
冻结文件清单
记录绝对或相对路径、大小、时间和必要哈希,排除隐藏、系统、生成和无授权目录。
生成纯映射
只计算旧路径到新路径,不写文件;检查空名、保留字、非法字符、长度和大小写冲突。
检测碰撞与链式覆盖
多个源指向同一目标、A 改 B 而 B 改 C 时使用临时唯一名或分阶段执行。
先试跑 10 个
在可恢复副本执行,检查引用、排序和应用兼容;用户确认映射后再扩大。
全量与回滚
逐项记录成功失败,失败不中途猜修;用反向映射恢复并核对数量。
先生成映射和碰撞报告,再试跑 10 个文件
| 检查 | 输入 | 输出 | 决定 |
|---|---|---|---|
| 清单 | images/ 下 120 个文件 | 路径、大小、时间和哈希 | 排除隐藏和生成物 |
| 映射 | `2026-09-01_a.png`→`a-20260901.png` | 纯旧/新路径表 | 发现空名和非法字符即停 |
| 碰撞 | 两个源指向同一目标 | 冲突和链式改名表 | 使用临时唯一名 |
| 试跑 | 副本中 10 个文件 | 成功、失败、引用检查 | 确认后才扩大 |
| 回滚 | 反向映射 | 恢复数量和路径对照 | 任何异常停止全量 |
路径和数量为演示;真实重命名必须先确认目录范围和用户授权。
完成后的新旧名称映射、试跑和回滚结果
dry-run 映射发现 23 个冲突与 17 个缺日期文件;冲突改用哈希后缀,缺日期进入人工清单。先复制 10 个文件试跑并反向恢复成功,才对副本全量执行,源目录未改。
为什么“预览无冲突,全量仍有漏项”还不能交付
预览无冲突,全量仍有漏项
- 原因
- 脚本扫描范围或扩展名规则与预览不同
- 怎么改
- 预览与执行共用同一已冻结映射文件,并核对输入数量与输出数量
