中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 16:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:REN命令能否重命名子目录下的文件 查看 1,824 回复 10
楼 主 求助:REN命令能否重命名子目录下的文件 发表于 2007-11-30 19:37 ·  中国 上海 奉贤区 电信
初级用户
积分 30
发帖 12
注册 2007-11-30 01:09
18年会员
UID 104212
性别 男
状态 离线
我现在要做个批处理更名的操作,比如ren a.mpg b.mpg ,其中a.mpg在当前目录下的子目录中,有什么办法让ren查找到下级子目录吗,有什么参数可以加吗,谢谢了。
2 发表于 2007-11-30 19:57 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
麻烦!!!以后发贴前先搜贴!!!搜下全是答案!!!还一贴多发!!!
第一高手 第二高手

3 发表于 2007-11-30 19:58 ·  中国 上海 奉贤区 电信
初级用户
积分 30
发帖 12
注册 2007-11-30 01:09
18年会员
UID 104212
性别 男
状态 离线
不好意思了,新手刚加入的
4 发表于 2007-11-30 20:08 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
5 发表于 2007-11-30 20:11 ·  中国 上海 奉贤区 电信
初级用户
积分 30
发帖 12
注册 2007-11-30 01:09
18年会员
UID 104212
性别 男
状态 离线
我想问一下,我要改名的文件有好多,而且在不同的子目录下面,我现在无法确定路径,该怎么操作改名呀
6 发表于 2007-11-30 20:22 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
要改名的文件有好多!扩展名是什么?目标文件名?
for /f "delims=" %%a in ('dir /s /b /a-d D:\*.mpg') do echo ren "%%a" "文件名"
还可以这样
for /f "delims=" %%a in ('dir /s /b /a-d D:\*.dat') do echo ren "%%a" "%%~na.mpg"
第一高手 第二高手

7 发表于 2007-11-30 20:41 ·  中国 上海 奉贤区 电信
初级用户
积分 30
发帖 12
注册 2007-11-30 01:09
18年会员
UID 104212
性别 男
状态 离线
我有个文件列表,对应要改的文件名都在里面,一一对应的,我是数据库软件生成的txt文档,我想做BAT加上ren前缀来批量改名
8 发表于 2007-11-30 20:53 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
哎不知道怎么说好,掌握点提问技巧
文件列表贴出来吧
第一高手 第二高手

9 发表于 2007-11-30 23:45 ·  中国 上海 奉贤区 电信
初级用户
积分 30
发帖 12
注册 2007-11-30 01:09
18年会员
UID 104212
性别 男
状态 离线
不好意思,我也表达不清楚,我把我现在的列表贴上来,希望能者帮忙了。

REN SHE--落大雨.* "落大雨.*"
REN SHE--美丽新世界.* "美丽新世界.*"
REN SHE--摩天轮.* "摩天轮.*"
REN SHE--魔力.* "魔力.*"
REN SHE--你还好不好.* "你还好不好.*"
REN SHE--你快乐我随意.* "你快乐我随意.*"
REN ALIN--爱请问怎么走[扬声].* "爱请问怎么走.*"
REN SHE--你太诚实.* "你太诚实.*"
REN MAROON 5--SHE WILL BE LOVE(英语)[扬声].* "SHE WILL BE LOVE.*"
REN TANK--蟑螂小强.* "蟑螂小强.*"
REN SHE--热带雨林.* "热带雨林.*"
REN SHE--神枪手.* "神枪手.*"

这是我要做的批处理改名,以上只是一小部分内容。现在已有一个这样的列表txt文件,可现在要改的文件在不同的子目录里,我用什么办法能批量改呀
10 发表于 2007-12-01 02:15 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
批处理远比你想像强大的多,只要你给它一点信息和规律它就能达到你意想不到的效果,反之什么都办不到。

你这样是没有规律的重命名方式,只能做些粗重活手动重命名了。
随便说下REN 没有处理子目录参数的

再给你1个例子
for /r D:\ %%a in (*落大雨*.*) do ren "%%a" "落大雨.*"
解释:遍历D盘包括所有子目录包含“落大雨”字符串(且不管前缀是啊猫扩展名啊狗)一律重命名为“落大雨.原扩展名”
还可以写成
for /f "delims=" %%a in ('dir /s /b /a-d D:\*落大雨*.*') do ren "%%a" "落大雨.*"
2条命令同样的效果

多看看置顶教程
第一高手 第二高手

11 发表于 2007-12-01 10:18 ·  中国 上海 奉贤区 电信
初级用户
积分 30
发帖 12
注册 2007-11-30 01:09
18年会员
UID 104212
性别 男
状态 离线
非常感谢,我有点理解了,看来批处理功能真强呀,只要你想做的无所不能,看来我要好好学习了。真有用
论坛跳转: