中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 16:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何把同一目录下同一类型的文件名改成连续的数字名? 查看 1,419 回复 14
楼 主 如何把同一目录下同一类型的文件名改成连续的数字名? 发表于 2007-04-13 14:17 ·  中国 湖北 武汉 电信
初级用户
积分 68
发帖 30
注册 2007-01-16 07:05
19年会员
UID 76659
性别 男
状态 离线
刚才看到一位兄弟求救用批处理改文件名,就想起了我很久以前的一个想法。

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

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

释.本人能力有限,怕看不懂.谢谢啦.
2 发表于 2007-04-13 21:18 ·  中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
试试这个看满足要求么


  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 ]
3 发表于 2007-04-13 21:55 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
@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
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
4 发表于 2007-04-13 23:09 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 866
发帖 415
注册 2005-12-04 11:19
20年会员
UID 46459
状态 离线
这个需要批处理吗?手工来的更快吧。
编辑》全选》重命名》输入1.jpg。回车即可。
5 发表于 2007-04-13 23:29 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by htysm at 2007-4-13 10:09:
这个需要批处理吗?手工来的更快吧。
编辑》全选》重命名》输入1.jpg。回车即可。

可惜出来的除了第一个是1.jpg,其它的是1 (n).jpg(XP SP2)
6 发表于 2007-04-14 00:03 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
我的win2000不能实现htysm兄说的
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
7 发表于 2007-04-14 03:59 ·  中国 湖北 武汉 电信
初级用户
积分 68
发帖 30
注册 2007-01-16 07:05
19年会员
UID 76659
性别 男
状态 离线
谢谢各位兄弟的帮忙!

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

三楼的可以.呵呵......没想到困扰我这么多年的问题今天终于搞定了.
8 发表于 2007-04-14 04:26 ·  中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
是的;我的那个应该启用变量延迟;修正后如下


  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
9 发表于 2007-04-15 03:20 ·  中国 湖北 武汉 电信
初级用户
积分 68
发帖 30
注册 2007-01-16 07:05
19年会员
UID 76659
性别 男
状态 离线
for /f "delims=" %%a in ('dir /b *.jpg') do ren "%%a" "!count!.jpg" && set /a count+=1


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

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

能不能解释一下啊?谢谢了!还是看不太懂!
10 发表于 2007-04-15 04:12 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 397
发帖 168
注册 2006-10-08 10:07
19年会员
UID 64934
状态 离线
没必要用批处理!!
ACDsee 9 (软件)可以支持批量重命名!!
只过是你研究技术,你看他们说的吧,如果只是批量改文件名,那就可以用这个软件,非常适合数码相机照出来的相片改名!!
11 发表于 2007-05-28 13:28 ·  中国 广西 梧州 电信
初级用户
积分 52
发帖 21
注册 2007-02-09 11:24
19年会员
UID 79057
性别 男
状态 离线
4搂9搂的兄台,我们来这里是为了学习批处理,使用其他工具来达到同样效果就违背了学习的目的

这几天我一直在琢磨怎么写个批量改名……有启发了!
12 发表于 2007-05-28 13:45 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
一句:
@echo off
for /f "delims=" %%a in ('dir /b *.jpg') do set /a count+=1&&call ren "%%a" "%%count%%.jpg"
13 发表于 2007-05-28 14:11 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
进一步“简化”:
@echo off
for %%a in (*.jpg) do set /a count+=1&&call ren "%%a" "%%count%%.jpg"
14 又有收获哦 发表于 2007-05-28 21:19 ·  中国 重庆 奉节县 电信
中级用户
★★
积分 235
发帖 109
注册 2006-08-24 00:52
19年会员
UID 61161
性别 男
状态 离线
又有收获哦 谢谢
15 发表于 2007-09-03 09:54 ·  中国 广西 南宁 西乡塘区 电信
中级用户
★★
积分 259
发帖 164
注册 2006-09-21 23:39
19年会员
UID 63296
状态 离线
好东西呀,收录了^_^ 2007年[9月3日9:44:54]星期一
论坛跳转: