中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 一个比较复杂的图片批量重命名问题
作者:
标题: 一个比较复杂的图片批量重命名问题 上一主题 | 下一主题
lac
新手上路





积分 4
发帖 4
注册 2009-8-4
状态 离线
『楼 主』:  一个比较复杂的图片批量重命名问题

现在碰到这样一个问题,我现在有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 ]

2009-8-6 23:29
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 2 楼』:  

试试?如果显示符合要求,把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


2009-8-7 00:57
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lac
新手上路





积分 4
发帖 4
注册 2009-8-4
状态 离线
『第 3 楼』:  

谢谢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 这似乎要用到以前一篇帖子里的指定重命名方法了,不知如何能整合进来呢?

2009-8-7 02:57
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 4 楼』:  

这是最后一次回复...
如果显示符合要求,把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


2009-8-7 03:28
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lac
新手上路





积分 4
发帖 4
注册 2009-8-4
状态 离线
『第 5 楼』:  

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这样的改动,不知是怎么回事

2009-8-7 04:10
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 6 楼』:  

@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 ]

2009-8-7 04:37
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lac
新手上路





积分 4
发帖 4
注册 2009-8-4
状态 离线
『第 7 楼』:  

现在使用了80个文件夹进行了回显试用,效果良好没有错误。拜谢moniuming兄!

2009-8-7 04:57
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: