中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何把同一目录下同一类型的文件名改成连续的数字名?
作者:
标题: 如何把同一目录下同一类型的文件名改成连续的数字名? 上一主题 | 下一主题
fanglor
初级用户





积分 68
发帖 30
注册 2007-1-16
状态 离线
『楼 主』:  如何把同一目录下同一类型的文件名改成连续的数字名?

刚才看到一位兄弟求救用批处理改文件名,就想起了我很久以前的一个想法。

比如说在一个目录下有N个JPG文件,怎么把它改成1.JPG,2.JPG,3.JPG等等.

我试了好多次都没有成功.希望哪位好心的高手能帮着解决一下.代码最好附上注

释.本人能力有限,怕看不懂.谢谢啦.

2007-4-13 14:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 2 楼』:  

试试这个看满足要求么

  Quote:

  1. @echo off
  2. set count=1
  3. for /f "delims=" %%a in ('dir /b *.jpg') do ren %%a %count%.jpg && set /a count+=1
         BJSH发表于:  2007-04-13  08:07

[ Last edited by bjsh on 2007-4-13 at 09:17 AM ]

2007-4-13 21:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 3 楼』:  


@echo off
set num=0
for /f "delims=" %%i in ('dir/b *.jpg') do set/a num+=1&call :re "%%i"
goto :eof
:re
ren %1 %num%.jpg




三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-4-13 21:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 4 楼』:  

这个需要批处理吗?手工来的更快吧。
编辑》全选》重命名》输入1.jpg。回车即可。

2007-4-13 23:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by htysm at 2007-4-13 10:09:
这个需要批处理吗?手工来的更快吧。
编辑》全选》重命名》输入1.jpg。回车即可。

可惜出来的除了第一个是1.jpg,其它的是1 (n).jpg(XP SP2)

2007-4-13 23:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 6 楼』:  

我的win2000不能实现htysm兄说的



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-4-14 00:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fanglor
初级用户





积分 68
发帖 30
注册 2007-1-16
状态 离线
『第 7 楼』:  

谢谢各位兄弟的帮忙!

经测试:二楼的方法好像存在一点问题。错误提示:存在一个重命名文件或是找不到文件。结果:只能改一个成1.JPG!

三楼的可以.呵呵......没想到困扰我这么多年的问题今天终于搞定了.

2007-4-14 03:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 8 楼』:  

是的;我的那个应该启用变量延迟;修正后如下

  Quote:

  1. @echo off & setlocal enabledelayedexpansion
  2. set count=1
  3. for /f "delims=" %%a in ('dir /b *.jpg') do ren "%%a" "!count!.jpg" && set /a count+=1
         BJSH发表于:  2007-04-13  15:15



2007-4-14 04:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fanglor
初级用户





积分 68
发帖 30
注册 2007-1-16
状态 离线
『第 9 楼』:  

for /f "delims=" %%a in ('dir /b *.jpg') do ren "%%a" "!count!.jpg" && set /a count+=1


"delims="这个是什么意思啊?

"!count!.jpg"这一句能调用后面的count 吗?

能不能解释一下啊?谢谢了!还是看不太懂!

2007-4-15 03:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 10 楼』:  

没必要用批处理!!
ACDsee 9 (软件)可以支持批量重命名!!
只过是你研究技术,你看他们说的吧,如果只是批量改文件名,那就可以用这个软件,非常适合数码相机照出来的相片改名!!

2007-4-15 04:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Waterlive
初级用户





积分 52
发帖 21
注册 2007-2-9
状态 离线
『第 11 楼』:  

4搂9搂的兄台,我们来这里是为了学习批处理,使用其他工具来达到同样效果就违背了学习的目的

这几天我一直在琢磨怎么写个批量改名……有启发了!

2007-5-28 13:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 12 楼』:  

一句:
@echo off
for /f "delims=" %%a in ('dir /b *.jpg') do set /a count+=1&&call ren "%%a" "%%count%%.jpg"


2007-5-28 13:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 13 楼』:  

进一步“简化”:
@echo off
for %%a in (*.jpg)  do set /a count+=1&&call ren "%%a" "%%count%%.jpg"

2007-5-28 14:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq82015930
中级用户




积分 235
发帖 109
注册 2006-8-24
状态 离线
『第 14 楼』:  又有收获哦

又有收获哦  谢谢

2007-5-28 21:19
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (82015930)  编辑帖子  回复  引用回复
liu3157551
中级用户





积分 259
发帖 164
注册 2006-9-21
状态 离线
『第 15 楼』:  

好东西呀,收录了^_^  2007年[9月3日9:44:54]星期一

2007-9-3 09:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: