有哪位大佬会写BAT脚本,用来批量修改图片名字?

2025-04-29 13:11:57
推荐回答(2个)
回答1:

保存为BAT后缀名的脚本文件,文本编码选择ANSI。放至图片文件一起后双击执行即可。

@echo off & title 根据指定规则修改图片名 By 依梦琴瑶
cd /d "%~dp0"
setlocal enabledelayedexpansion

::设置号段和添加字符
set Str="001-015|A","016-030|B","031-045|C"

::设置文件格式
set Ext=jpg

for %%a in (%Str%) do (
    for /f "tokens=1,2* delims=|" %%b in ("%%~a") do (
        for /f "tokens=1,2 delims=-" %%d in ("%%~b") do (
            for /l %%g in (1%%~d,1,1%%~e) do (
                set "N=%%~g"
                echo "!N:~1!.%Ext%" --^>^> "!N:~1!.%%~c.%Ext%"
                ren "!N:~1!.%Ext%" "!N:~1!.%%~c.%Ext%"
            )
        )
    )
)
pause
call :ToMe
exit

:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit

回答2:

不清楚你的实际情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行

@echo off
rem 将多张jpg图片按指定数量分批在文件名称中添加/插入不同字符
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set count=15
for %%a in ("_1=A" "_2=B" "_3=C") do set "%%~a"
for /f "delims=" %%a in ('dir /a-d/b *.jpg') do (
    set /a "m=n/%count%+1,n+=1"
    set "fname=%%~na"&set "file=%%a"
    setlocal enabledelayedexpansion
    for /f %%b in ("!m!") do (
        echo;"!file!" --^> "!fname!.!_%%b!%%~xa"
        ren "!file!" "!fname!.!_%%b!%%~xa"
    )
    endlocal
)
:end
echo;%#% +%$%%$%/%@% %z%
pause
exit