文件批量重命名
拖入上千个文件按模板与序号批量改名,逐行预览手改、重名自动避让,改名后打包 ZIP 或生成改名脚本
把要重命名的文件拖到这里,或点击选择
支持一次添加上千个文件,类型不限(照片、视频、文档、压缩包都可以)
改名、打包、生成脚本都在浏览器本地完成,文件内容不会被上传
改名、打包、生成脚本都在浏览器本地完成,文件内容不会被上传
重命名规则
还可使用 {date} 今天日期、{time} 当前时间、{mtime} 文件修改日期、{size} 文件大小。
模板里没写 {ext} 时,扩展名会自动保留在末尾;写了就按你放的位置来。
空格改成:
工具介绍
批量改名麻烦的从来不是「改一个」,而是改完发现两个撞名了、扩展名被吃掉了、或者已经想不起来原来叫什么。这个工具把改名做成可以逐行预览的规则:文件拖进来,改一下模板就能看到每一行的新名字,确认没问题再决定怎么落地。
- 命名模板:
{name}主名、{n}序号、{ext}扩展名、{date}今天、{time}当前时间、{mtime}文件修改日期、{size}文件大小,八个常用模板做成按钮一键填入 - 序号可控:起始值、步长、补零位数分开设,10 起步、步长 5、四位补零就是
0010 / 0015 / 0020;关掉某一行的改名开关后它不占号,后面的编号自动前移 - 查找替换支持正则:开正则后可用
$1、$2反向引用,把^(\w+)\s(\d+)换成$2_$1,「DSC 0421」就变成「0421_DSC」;表达式写错只在行内提示并保留原名,不会把整列名字清空 - 大小写与清理:主名可整体转小写、大写、首字母大写或每词首字母大写;空格能换成 - 、_ 或直接删除;
\/:*?"<>|这些非法字符默认清理,重复分隔符自动合并,首尾多余的点与空格去掉,CON、NUL、LPT1这类系统保留名会加上下划线前缀 - 扩展名四种处理:保持原样、统一小写、统一大写、强制指定。模板里写了
{ext}就按你放的位置走,没写则自动把原扩展名接回末尾,不会出现改完打不开的情况 - 重名自动避让:新名字撞车时自动追加
(2)、(3),也可以选「保持原名不改」;大小写不同同样算重名,因为 Windows 与 macOS 默认都不区分大小写 - 逐行手改与排除:预览表格里任何一行都能直接改,手工改过的行不会被后续规则变化覆盖,点「还原」重新跟随规则;不想动的行可以排除,改完发现不对也能整行移除
- 排序决定编号顺序:按添加顺序、名称、大小、修改时间排好再编号。先按修改时间从新到旧排序,再套
{n},就得到一组按拍摄先后连续的编号 - 三种落地方式:打包下载改名后的 ZIP(可选平铺或按原目录分层)、复制新文件名列表、复制「原名 → 新名」对照表
- 生成改名脚本:PowerShell、批处理、Shell 三种格式,逐条给出
Rename-Item、ren、mv -n,原名与新名都做了引号转义,复制到目标目录即可运行
为什么还要给脚本
浏览器出于安全不能直接修改你硬盘上的文件名,所以「打包下载」拿到的是重命名后的副本。想在原目录里就地改名,用生成的脚本更稳妥:文件多、体积大、或者需要保留权限与修改时间时,脚本只改名字不动内容,也不必把几 GB 的文件读进内存。
使用场景
- 手机导出的照片全是
IMG_2043 副本 (1).JPG,想按拍摄先后统一成IMG_0001 - 下载目录里的文件名带着空格和中文括号,丢给服务器或 Git 就出问题,需要一次性清理成安全字符
- 会议录音、访谈转写按「日期 + 序号」归档,方便和记录对上
- 扫描件的
scan0001.pdf想换成合同-20261020-01.pdf这类带业务含义的名字 - 一目录的图片扩展名有
.JPG也有.jpg,网页引用时区分大小写会 404 - 把一批文件改成统一前缀加连续编号,同时留下原名与新名的对照表备查
常见模板速查
| 想要的效果 | 命名模板 | 配套设置 | 得到 |
|---|---|---|---|
| 照片连续编号 | IMG_{n} | 位数 4 | IMG_0001.JPG |
| 按拍摄日期分组 | {mtime}_{n} | 位数 3,先按修改时间排序 | 20260511_001.JPG |
| 只清空格与符号 | {name} | 空格改成 -,清理非法字符 | DSC-0421-副本.JPG |
| 全部转小写 | {name} | 大小写选全部小写,扩展名统一小写 | photo.png |
| 去掉相机前缀换个头 | {name} | 正则查找 ^DSC\s* 替换为空 | 0421.jpg |
| 扫描件按日期编号 | scan_{date}_{n} | 位数 2,扩展名统一小写 | scan_20261020_01.pdf |
常见问题
- 会不会把文件改坏?不会。改名规则只作用在文件名上,打包时读取的是原始字节,内容一个字节都不动;页面也不写你的磁盘
- 一次能处理多少个?上限 2000 个。文件很多时预览只画前 400 行,但编号、重名避让、脚本和打包仍然覆盖全部文件
- ZIP 为什么不压缩?照片、视频、安装包本身已经压缩过,再压一遍省不了多少还慢;不压缩存储读写都快,也避免浏览器里的大内存开销。单个文件或总量接近 4GB 时会拒绝打包并建议你用脚本
- 拖整个文件夹会保留层级吗?默认平铺到 ZIP 根目录,同名文件自动让位;想保留结构就在打包选项里选「按原文件夹分层」
- 脚本要注意什么?脚本里只有文件名,运行前要先切到文件所在目录;批处理的
ren遇到同名目标会报错停止,mv -n则跳过不覆盖。第一次建议先在副本目录里跑一遍 - 点文件怎么算?
.gitignore这类只有前导点的名字视作「无扩展名」,前导点会被保留,不会被当成空主名 - 扩展名会不会丢?默认会自动接回原扩展名。只有两种情况由你自己负责:模板里写了
{ext},或者勾了「连扩展名一起替换」(此时整名都交给替换步骤,不再自动补) - 只改某几类文件怎么办?把不想动的行在「改名」列里关掉即可;也可以先按名称或修改时间排序,让同类文件聚在前几行再统一处理
- 信息会上传吗?不会。文件读取、规则计算、打包与脚本生成都在浏览器本地完成,页面不发任何请求,刷新即清空
改之前想先看清文件属性可用 文件信息读取;只要一份文件名清单见 文件名提取;把后缀与主名拆开或单独改后缀大小写,用 文件名后缀拆分 和 后缀大小写转换;改名后要确认副本与原文件一致,用 文件MD5计算 核一遍;配合新名字批量建目录结构可参考 批量文件夹创建。