批量重命名JPG文件:移除原有后缀并添加连续3位数字计数器后缀
批量重命名JPG文件:移除原有后缀并添加连续3位数字计数器后缀
嗨,我来帮你搞定这个问题!你之前遇到的重复文件名报错,是因为单独移除数字后缀后,所有文件的基础名称会完全一致,系统肯定会冲突。其实我们可以把「移除原有数字后缀」和「添加连续计数器」合并成一个脚本,一步到位解决问题,还能避免重复命名的麻烦。
完整解决方案脚本
直接用这个PowerShell脚本就能实现你的需求:
# 初始化计数器,从1开始计数 $counter = 1 # 获取目标文件夹下的所有JPG文件,可按需调整排序规则 Get-ChildItem 'C:\New Folder' -Filter *.jpg | Sort-Object Name | ForEach-Object { # 用正则表达式去掉文件名末尾的所有数字,提取固定前缀部分 $prefix = $_.BaseName -replace '\d+$', '' # 格式化新文件名:前缀 + 3位补零计数器 + 原扩展名 $newName = "{0}{1:D3}{2}" -f $prefix, $counter++, $_.Extension # 执行重命名操作 Rename-Item -Path $_.FullName -NewName $newName }
脚本细节解释
$counter = 1:设置计数器的起始值,你可以根据需要改成0或者其他数字。Sort-Object Name:确保文件按原文件名顺序编号,如果需要按修改时间、创建时间排序,可改成Sort-Object LastWriteTime或Sort-Object CreationTime。-replace '\d+$', '':这是核心逻辑,用正则表达式匹配文件名末尾的所有数字(不管位数),并替换为空,从而提取出不带数字后缀的固定前缀(比如你的例子里就是Image Image)。"{0}{1:D3}{2}":格式化字符串,其中{1:D3}会把计数器数字转为3位格式,不足的位置自动补零(比如1变成001,12变成012)。$counter++:每处理完一个文件,计数器自动加1,保证编号连续不重复。
效果演示
用你给出的例子测试:
原文件:
Image Image 001.jpg
Image Image 022.jpg
Image Image 078.jpg
Image Image 113.jpg
处理后结果:
Image Image 001.jpg
Image Image 002.jpg
Image Image 003.jpg
Image Image 004.jpg
重要提醒
- 运行脚本前务必先备份文件,避免操作失误导致文件丢失。
- 如果你的文件名前缀不统一(比如有的是
Photo 001.jpg,有的是Image 022.jpg),这个脚本依然有效,它会为每个文件保留各自的前缀,再添加连续计数器。
备注:内容来源于stack exchange,提问作者Sunshinefox
相关产品推荐
相关产品推荐

