hsm2913299 发表于 2024-11-3 21:16

关于多个文件夹里面图片命名问题

比如多个文件夹里面有多个子文件夹,我需要将每个最底层子文件夹里面的 jpg 图片命名开始都是 img00001,img00002......img00100,以此类推。请问怎样用最简单方法批量重命名。
希望能 bat 文件代码解决。

LuoShang 发表于 2024-11-3 21:19

本帖最后由 LuoShang 于 2024-11-3 21:21 编辑

@echo offsetlocal enabledelayedexpansionREM 根目录,你可以根据需要修改这个路径set "rootDir=C:\Your\Directory\Path"REM 递归遍历所有文件夹for /r "%rootDir%" %%d in (.) do (    REM 检查是否为最底层文件夹    if not exist "%%d*." (      REM 初始化计数器      set /a count=1                REM 遍历文件夹内的 JPG 文件      for %%f in ("%%d*.jpg") do (            REM 格式化计数器为5位数,前面补0            set "newName=img!count!000"            set "newName=!newName:~0,9!.jpg"                        REM 重命名文件            ren "%%f" "!newName!"                        REM 增加计数器            set /a count+=1      )    ))echo 完成!pause

ThemanRonin 发表于 2024-11-3 21:19

@echo off
setlocal enabledelayedexpansion

rem 计数器初始化
set count=1

rem 遍历当前目录及其子目录
for /r %%D in (.) do (
    pushd "%%D"
    setlocal enabledelayedexpansion

    rem 查找最底层文件夹中的 JPG 文件
    if exist *.jpg (
      for %%F in (*.jpg) do (
            rem 格式化文件名
            set filename=img!count!
            set "newname=!filename:~0,7!0000!count!"
            set "newname=!newname:~-5!.jpg"
            ren "%%F" "!newname!"
            set /a count+=1
      )
    )

    endlocal
    popd
)

endlocal



效果图:
https://pic.rmb.bdstatic.com/bjh/241103/12c698d2a675cd435d70a02b7daac4454569.png

LuoShang 发表于 2024-11-3 21:21

本帖最后由 LuoShang 于 2024-11-3 21:23 编辑

LuoShang 发表于 2024-11-3 21:19
@echo offsetlocal enabledelayedexpansionREM 根目录,你可以根据需要修改这个路径set "rootDir=C:\Your\D ...
@echo off
setlocal enabledelayedexpansion

REM 根目录,你可以根据需要修改这个路径
set "rootDir=C:\Your\Directory\Path"

REM 递归遍历所有文件夹
for /r "%rootDir%" %%d in (.) do (
    REM 检查是否为最底层文件夹
    if not exist "%%d*." (
      REM 初始化计数器
      set /a count=1
      
      REM 遍历文件夹内的 JPG 文件
      for %%f in ("%%d*.jpg") do (
            REM 格式化计数器为5位数,前面补0
            set "newName=img!count!000"
            set "newName=!newName:~0,9!.jpg"
            
            REM 重命名文件
            ren "%%f" "!newName!"
            
            REM 增加计数器
            set /a count+=1
      )
    )
)

echo 完成!
pause

ThemanRonin 发表于 2024-11-3 21:25

ThemanRonin 发表于 2024-11-3 21:19
@echo off
setlocal enabledelayedexpansion



创建一个新的文本文件,将上述代码复制进去。
将文件另存为 cmd 文件放在你想要重命名图片的父文件夹中。
双击运行 cmd 文件会自动处理文件夹下所有jpg文件的命名。
注意备份

hsm2913299 发表于 2024-11-3 21:42

ThemanRonin 发表于 2024-11-3 21:19
@echo off
setlocal enabledelayedexpansion



大佬,效果图图片重命名前面没加有 img 呢

a3131311026 发表于 2024-11-3 22:38

@echo off
setlocal enabledelayedexpansion

rem 设置起始编号
set count=1

rem 遍历所有子文件夹
for /r %%d in (.) do (
    pushd %%d
    rem 检查当前目录是否包含 JPG 文件
    setlocal enabledelayedexpansion
    set filecount=0
    for %%f in (*.jpg) do (
      set /a filecount+=1
      rem 格式化文件名
      set filename=img!count:~0,-1!%%~nf
      ren "%%f" "!filename!.jpg"
      set /a count+=1
    )
    endlocal
    popd
)

endlocal
echo 完成重命名
pause

ThemanRonin 发表于 2024-11-4 08:16

本帖最后由 ThemanRonin 于 2024-11-4 08:17 编辑

hsm2913299 发表于 2024-11-3 21:42
大佬,效果图图片重命名前面没加有 img 呢
不好意思,漏了,这个代码可以了
@echo off
setlocal enabledelayedexpansion

rem 计数器初始化
set count=1

rem 遍历当前目录及其子目录
for /r %%D in (.) do (
    pushd "%%D"
    setlocal enabledelayedexpansion

    rem 查找最底层文件夹中的 JPG 文件
    if exist *.jpg (
      for %%F in (*.jpg) do (
            rem 格式化文件名
            set filename=img!count!
            set "newname=!filename:~0,7!0000!count!"
            set "newname=img!newname:~-5!.jpg"
            ren "%%F" "!newname!"
            set /a count+=1
      )
    )

    endlocal
    popd
)

endlocal



效果图:
https://pic.rmb.bdstatic.com/bjh/241104/269f5a02a820e749bc0746e11ccda75f4158.png

ThemanRonin 发表于 2024-11-4 08:19

ThemanRonin 发表于 2024-11-4 08:16
不好意思,漏了,这个代码可以了
@echo off
setlocal enabledelayedexpansion


注意事项,不要把cmd文件命名为数字,不然会影响img文件数字的生成,重命名成字母即可,例如abc.cmd

qds201601 发表于 2024-11-4 08:26

@echo off
setlocal enabledelayedexpansion

rem 遍历所有子文件夹
for /r %%d in (*.jpg) do (
    set /a count+=1
    rem 格式化数字为固定长度
    set "num=00000!count!"
    set "newname=img!num:~-5!.jpg"
    rem 重命名文件
    ren "%%d" "!newname!"
)
你可以将上述代码保存为一个 .bat 文件,然后将该文件放置在包含多个文件夹和子文件夹的目录中运行。这个批处理脚本会遍历所有子文件夹,找到其中的 .jpg 文件并按照 img00001.jpg、img00002.jpg 等格式进行重命名。
请注意,在运行批处理文件之前,最好先备份你的文件,以免出现意外情况导致数据丢失。
页: [1] 2 3
查看完整版本: 关于多个文件夹里面图片命名问题