标题: 一个比较复杂的图片批量重命名问题
[打印本页]
作者: lac
时间: 2009-8-6 23:29
标题: 一个比较复杂的图片批量重命名问题
现在碰到这样一个问题,我现在有200个文件夹,每个文件夹内有名字依次为1,2,3。。。19的19张图片,一些图片有缺失的情况,所以编号也可能是不连续的。
需要把这些图片改名为A_X_B_Y的格式,其中,A为固定的前缀,X须与图片所在的文件夹名相同,B也为固定的,Y与图片的编号相关联,如1对应Y1,2对应Y2等,但Y1,Y2。。。Y19不连续。(先前为了咨询用Y1...这些代称来提问,犯了未能一次表述清楚问题的错误,现在重新编辑一下,请见谅!)
重命名对应关系如下:
图片现名 重命名目标名称
1 A_X_B_SE-C-010
2 A_X_B_SE-F-1-010
3 A_X_B_SE-F-1-040
4 A_X_B_SE-F2-010
5 A_X_B_SE-F2-020
6 A_X_B_SE-F2-030
7 A_X_B_SE-F2-040
8 A_X_B_SE-F2-050
9 A_X_B_SE-F3-010
10 A_X_B_SE-F3-030
11 A_X_B_SE-F3-040
12 A_X_B_SE-F3-060
13 A_X_B_SE-F3-080
14 A_X_B_SE-F-4-060
15 A_X_B_SE-F-4-070
16 A_X_B_SE-F-4-080
17 A_X_B_SE-F-4-160
18 A_X_B_SE-A-1-010
19 A_X_B_SE-A-1-020
我属于门儿都还没入的新手,帖子也搜索过,无奈没有这种把固定前缀,与文件夹同名,指定列表重命名综合起来的案例,只有发帖寻求帮助了。。。
[
Last edited by lac on 2009-8-7 at 03:16 ]
作者: moniuming
时间: 2009-8-7 00:57
试试?如果显示符合要求,把ren前的"echo."去掉即可进行重命名操作...
@echo off
for /f "delims=" %%a in ('dir /b /ad *.*') do (
for /f "delims=" %%i in ('dir /s /b /a-d "%%a\*.jpg"') do (
echo.ren "%%i" "A_%%a_B_Y%%~xni"
)
)
echo.&pause
作者: lac
时间: 2009-8-7 02:57
谢谢moniuming!用6个文件夹尝试后格式正确,接下来的的问题是,Y1,Y2,Y3...这些是一种代称,而实际上有以下的对应关系:
Y1 SE-C-010
Y2 SE-F-1-010
Y3 SE-F-1-040
Y4 SE-F2-010
Y5 SE-F2-020
Y6 SE-F2-030
Y7 SE-F2-040
Y8 SE-F2-050
Y9 SE-F3-010
Y10 SE-F3-030
Y11 SE-F3-040
Y12 SE-F3-060
Y13 SE-F3-080
Y14 SE-F-4-060
Y15 SE-F-4-070
Y16 SE-F-4-080
Y17 SE-F-4-160
Y18 SE-A-1-010
Y19 SE-A-1-020
这似乎要用到以前一篇帖子里的指定重命名方法了,不知如何能整合进来呢?
作者: moniuming
时间: 2009-8-7 03:28
这是最后一次回复...
如果显示符合要求,把ren前的"echo."去掉即可进行重命名操作...
@echo off
setlocal enabledelayedexpansion
set n=0
for %%a in (SE-C-010 SE-F-1-010 SE-F-1-040 SE-F2-010 SE-F2-020 SE-F2-030 SE-F2-040 SE-F2-050 SE-F3-010 SE-F3-030 SE-F3-040 SE-F3-060 SE-F3-080 SE-F-4-060 SE-F-4-070 SE-F-4-080 SE-F-4-160 SE-A-1-010 SE-A-1-020) do (
set /a n+=1
set "y!n!=%%a"
)
set n=0
for /f "delims=" %%a in ('dir /b /ad *.*') do (
for /f "delims=" %%i in ('dir /s /b /a-d "%%a\*.jpg"') do (
set /a n+=1
call echo.ren "%%i" "A_%%a_B_%%y!n!%%%%~xni"
)
)
echo.&pause
作者: lac
时间: 2009-8-7 04:10
moniuming兄,谢谢回复!
well...出问题了,我使用了9个文件夹进行试用,执行后只有前18条实现了A_X_B_SE-C-010格式的指定改名,且执行结果为01改为A_X_B_SE-C-01001,10改为A_X_B_SE-C-01010,而18条以后仅进行了A_X_B_01,A_X_B_10这样的改动,不知是怎么回事
作者: moniuming
时间: 2009-8-7 04:37
@echo off
setlocal enabledelayedexpansion
set n=0
for %%a in (SE-C-010 SE-F-1-010 SE-F-1-040 SE-F2-010 SE-F2-020 SE-F2-030 SE-F2-040 SE-F2-050 SE-F3-010 SE-F3-030 SE-F3-040 SE-F3-060 SE-F3-080 SE-F-4-060 SE-F-4-070 SE-F-4-080 SE-F-4-160 SE-A-1-010 SE-A-1-020) do (
set /a n+=1
set "y!n!=%%a"
)
for /f "delims=" %%a in ('dir /b /ad *.*') do (
set n=0
for /f "delims=" %%i in ('dir /s /b /a-d "%%a\*.jpg"') do (
set /a n+=1
call ren "%%i" "A_%%a_B_%%y!n!%%%%~xi"
)
)
echo.&pause
[
Last edited by moniuming on 2009-8-7 at 04:42 ]
作者: lac
时间: 2009-8-7 04:57
现在使用了80个文件夹进行了回显试用,效果良好没有错误。拜谢moniuming兄!