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

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

文件夹, 多个

LuoShang   

@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   

[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
效果图:
[i]
LuoShang   


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   


ThemanRonin 发表于 2024-11-3 21:19
[mw_shl_code=asm,true]@echo off
setlocal enabledelayedexpansion

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


ThemanRonin 发表于 2024-11-3 21:19
[mw_shl_code=asm,true]@echo off
setlocal enabledelayedexpansion

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

[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
您需要登录后才可以回帖 登录 | 立即注册

返回顶部