代码已经按你的要求修改。再试试吧。
1、把你的a.txt跟b.txt合成一个,内容的结构如下
20010dgn TH00001
ddsddddd TH00002
ddfdfsdf TH00003
2、把合成的那个列表文件命名为list.txt放到你图片所在的文件夹下
3、把下面的批处理放到你图片所在的文件夹下执行就可以了。
4、最终的效果如下(考虑到你原来是用字母的,所以认为你数字位只需要两位,为了保持结构统一,补0)
TH00001_01.jpg
TH00001_02.jpg
TH00001_03.jpg
5、有什么问题留言。
@ECHO OFF
COLOR 0a
for /f "tokens=1,2" %%a in (
'more list.txt'
) do (
SETLOCAL ENABLEDELAYEDEXPANSION
set count=1
for /f "tokens=*" %%A in (
'dir %%a*.* /on /a-d /b'
) do (
ren %%A %%b_!count!%%~xA
set /a count=!count!+1
)
ENDLOCAL
)
PAUSE
未说明图片格式是否全为JPG,先假设全是JPG
如果a.txt和b.txt未合并,则批处理代码如下:
@echo off & setlocal enabledelayedexpansion
set m=0
for /f %%a in (a.txt) do (
call :strb
set n=
for /f "tokens=*" %%c in ('dir /b "%%a*.jpg"') do (
set /a n+=1
if !n! leq 9 set n=0!n!
ren "%%c" "!strb!_!n!.jpg"
)
)
exit
:strb
for /f %%b in ('more +!m! b.txt') do (
set strb=%%b
set /a m=!m!+1
goto :eof
)
如果已把a.txt和b.txt合成为list.txt,格式如下
20010dgn TH00001
ddsddddd TH00002
ddfdfsdf TH00003
则批处理代码如下:
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1-2" %%a in (list.txt) do (
set n=
for /f "tokens=*" %%c in ('dir /b "%%a*.jpg"') do (
set /a n+=1
if !n! leq 9 set n=0!n!
ren "%%c" "%%b_!n!.jpg"
)
)
exit