批量重命名文件名:过滤识别固定前缀文件避免重复重命名错误
固定前缀图片批量重命名防误操作方案
核心解决思路
原有脚本未做文件名特征校验,直接对所有jpg/png文件硬截断前26位,重复运行必然误伤已处理文件。优化方向是先通过正则匹配识别符合固定前缀规则的待处理文件,仅对匹配通过的文件执行重命名,已处理完成的文件因不符合前缀特征会被自动跳过。
你待处理文件的26位前缀固定格式为:Image_ + 19位时间串(YYYY-MM-DD-HH-MM-SS格式的数字与横杠组合) + 下划线,可通过正则精准匹配该特征。
优化后批处理脚本
@echo off powershell -Command "Get-ChildItem -Include *.png,*.jpg -File | Where-Object { $_.Name -match '^Image_\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2}_' } | Rename-Item -NewName { $_.Name.Substring(26) }"
脚本逻辑说明
- 仅扫描当前目录下后缀为.png、.jpg的文件,不处理其他格式文件
- 正则校验规则严格匹配前缀格式:必须以
Image_开头,后续依次为4位年份、2位月份、2位日期、2位小时、2位分钟、2位秒数,最后接下划线,完全匹配待处理文件的前缀特征 - 只有通过校验的文件才会执行截断前26位的重命名操作,已处理完成的文件(如
Filename-01.png)不满足前缀规则,重复运行脚本也不会被误修改
扩展说明
- 将脚本保存为.bat文件,放在待处理图片的文件夹内双击即可运行,支持反复运行,新放入的符合前缀规则的文件会被正常处理,旧文件不会被改动
- 如果需要支持更多图片格式,直接在
-Include参数后追加对应后缀即可,例如要支持jpeg格式可修改为-Include *.png,*.jpg,*.jpeg
内容的提问来源于stack exchange,提问作者mrwxy
相关产品推荐
相关产品推荐

