中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]求大侠写一批量重命名代码
« [1] [2] [3] »
作者:
标题: [已解决]求大侠写一批量重命名代码 上一主题 | 下一主题
balinger
中级用户




积分 356
发帖 115
注册 2004-7-27
状态 离线
『第 31 楼』:  

@echo off
for /f "tokens=1-5 delims=._" %%a in ('dir /b *.jpg') do (call :111 %%a %%b %%c %%d %%e)
ren *.jpp *.jpg
pause
exit
:111
set d=%4
set e=%5
:222
if %d:~0,1%==0 (set d=%d:~1% &goto 222)
set /a d+=1
set d=000000%d%
set d=%d:~-6%
:333
if %e:~0,1%==0 (set e=%e:~1% &goto 333)
set /a e+=1
set e=0000%e%
set e=%e:~-4%
ren %1_%2_%3_%4_%5.jpg %1_%2_%3_%d%_%e%.jpp

   此帖被 +4 点积分        点击查看详情   
评分人:【 hulongzhuo 分数: +4  时间:2008-3-28 16:46


2008-3-28 16:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huajinghua
初级用户





积分 54
发帖 19
注册 2008-2-24
状态 离线
『第 32 楼』:  

按照那种格式在我的电脑上试了一下可以的用我的代码

2008-3-28 16:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 33 楼』:  使用通配符:

@echo off&&setlocal enabledelayedexpansion
for /f "delims=_. tokens=4,5" %%b in ('dir /b') do (
    set x=%%b
    set y=%%c
    set /a x+=1
    set /a y+=1   
    ren *%%b_%%c.jpg *!x!_!y!.jpg
    )



批处理之家新域名:www.bathome.net
2008-3-28 16:13
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
hulongzhuo
中级用户




积分 294
发帖 135
注册 2007-3-9
状态 离线
『第 34 楼』:  

严重感谢33楼 以及所有为此给予帮助,给予代码,给予提示的大侠们,再次谢谢你们了,问题解决了!!!

高兴中~~~~~~

不知什么时候我才能达到这种水准!!  ~~~~

2008-3-28 16:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hulongzhuo
中级用户




积分 294
发帖 135
注册 2007-3-9
状态 离线
『第 35 楼』:  

abcd的代码我更是看不懂了,连路径放哪都不知道了,完全摸不着门了~~~

2008-3-28 16:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 36 楼』:  

我看变更3楼的就可以解决0开头问题
@echo off
for /f "delims=" %%i in ('dir /b /a-d D:\A\*.jpg') do (
    for /f "delims=_. tokens=1-5" %%a in ("%%i") do (
      set x=%%d
      set y=%%e
      call set/a x=1%%x%%+1
      call set/a y=1%%Y%%+1
      call set x=%%x:~1%%
      call set y=%%y:~1%%
      call ren "%%i" "%%a_%%b_%%c_%%x%%_%%y%%.jpg"
   )
)
pause

[ Last edited by terse on 2008-3-28 at 05:18 PM ]

   此帖被 +4 点积分      点击查看详情   
评分人:【 plp626 分数: +4  时间:2008-3-28 17:26




简单!简单!再简单!
2008-3-28 17:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hulongzhuo
中级用户




积分 294
发帖 135
注册 2007-3-9
状态 离线
『第 37 楼』:  



  Quote:
Originally posted by terse at 2008-3-28 05:13 PM:
我看变更3楼的就可以解决0开头问题
@echo off
for /f "delims=" %%i in ('dir /b /a-d D:\A\*.jpg') do (
    for /f "delims=_. tokens=1-5" %%a in ("%%i") d ...

的确是可行的.呵呵~~~

2008-3-28 17:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 38 楼』:  

哈,还有这么个插曲。
@echo off&&setlocal enabledelayedexpansion
:: 这里是路径。
set "lj=d:\a"
for /f "delims=" %%i in ('dir/b "%lj%\*.jpg"') do (
  for /f "tokens=1-5 delims=_." %%a in ("%%i") do (
    set /a x=1%%d+1,y=1%%e+1
    ren "%lj%\%%~nxi" "%%a_%%b_%%c_!x:~1!_!y:~1!.jpg"
))
pause




致精致简!
2008-3-28 18:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dslz666
中级用户





积分 233
发帖 117
注册 2007-11-28
状态 离线
『第 39 楼』:  

厉害呀。好多都看不懂,要努力学习。,

2008-3-28 18:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: