吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 315|回复: 26
收起左侧

[经验求助] 关于多个文件夹里面图片命名问题

[复制链接]
hsm2913299 发表于 2024-11-3 21:16
35吾爱币
比如多个文件夹里面有多个子文件夹,我需要将每个最底层子文件夹里面的 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
[Asm] 纯文本查看 复制代码
@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



效果图:

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 ...

[Asm] 纯文本查看 复制代码
@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
[mw_shl_code=asm,true]@echo off
setlocal enabledelayedexpansion

创建一个新的文本文件,将上述代码复制进去。
将文件另存为 cmd 文件放在你想要重命名图片的父文件夹中。
双击运行 cmd 文件会自动处理文件夹下所有jpg文件的命名。
注意备份
 楼主| hsm2913299 发表于 2024-11-3 21:42
ThemanRonin 发表于 2024-11-3 21:19
[mw_shl_code=asm,true]@echo off
setlocal enabledelayedexpansion

大佬,效果图图片重命名前面没加有 img 呢
a3131311026 发表于 2024-11-3 22:38
[Shell] 纯文本查看 复制代码
@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 呢

不好意思,漏了,这个代码可以了
[Asm] 纯文本查看 复制代码
@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



效果图:


ThemanRonin 发表于 2024-11-4 08:19
ThemanRonin 发表于 2024-11-4 08:16
不好意思,漏了,这个代码可以了
[mw_shl_code=asm,true]@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 等格式进行重命名。
请注意,在运行批处理文件之前,最好先备份你的文件,以免出现意外情况导致数据丢失。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表