批量修改文件名

将手机照片复制到电脑相册目录的时候,经常出现文件名重复提示文件覆盖的问题。比如,相册目录下有如下4个文件:

AAA_1000.JPG
BBB_139.png
CCC_10086.gif
IMG_12306.webp

如何批量修改文件名,实现如下效果:

  • 1、以 IMG_ 开头
  • 2、中间是连续数字,编号从 1001 开始
  • 3、不要改动原文件的格式

批量重命名后的效果如下:

IMG_1001.JPG
IMG_1002.png
IMG_1003.gif
IMG_1004.webp
  • 将如下内容保存为 rename.bat,然后放到指定目录下面,然后双击即可。

注意:若文件名包含空格则会导致重命名失败

@echo off
setlocal enabledelayedexpansion

echo 第1步, 针对特定类型的文件, 按照日期排序
dir *.jpg /od /b > file.txt
dir *.png /od /b >> file.txt
dir *.gif /od /b >> file.txt
dir *.webp /od /b >> file.txt

echo 第2步, 添加临时前缀, 直接ren会出现新文件名已存在而失败
for /f %%f in (file.txt) do (
    if not "%%f"=="%~nx0" (
        if not "%%f"=="temp_%%f" (
            ren "%%f" "temp_%%f"
        )
    )
)

echo 第3步, 文件名已变化, 再次排序是为了避免重命名失败
dir *.jpg /od /b > file.txt
dir *.png /od /b >> file.txt
dir *.gif /od /b >> file.txt
dir *.webp /od /b >> file.txt

echo 第4步, 正式重命名
set count=1001
for /f %%f in (file.txt) do (
    if not "%%f"=="%~nx0" (
        set "newName=IBF_!count!"
        set "newName=!newName:~-8!%%~xf"
        ren "%%f" "!newName!"
        set /a count+=1
    )
)

echo success, rename  %count% files
del file.txt
Copyright © www.sqlfans.cn 2021 - 2026 All Right Reserved更新时间: 2025-10-28 18:17:37

results matching ""

    No results matching ""