注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT教程&资料
» [批处理命令一日一教学](8)重命名文件(夹):ren[2009.2.26更新]
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
namejm
发短消息
加为好友
namejm
(闭关中)
当前离线
批处理代码写手
UID
5
帖子
1348
精华
8
积分
5183
PB
4236
技术
142
捐助
501
阅读权限
254
来自
四川-成都
在线时间
1842 小时
注册时间
2007-10-25
最后登录
2013-6-19
荣誉版主
帖子
1348
积分
5183
技术
142
捐助
501
注册时间
2007-10-25
1
楼
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2009-2-12 22:01
|
显示全部帖子
[原创]
[批处理命令一日一教学](8)重命名文件(夹):ren[2009.2.26更新]
[一日一教学]批处理系列帖子索引
http://www.bathome.net/thread-2576-1-1.html
标题:一日一教学系列8_重命名文件(夹):ren
首发地址:
http://bbs.bathome.net/viewthread.php?tid=3318
首发日期:2009.2.12
更新日期:2009.2.26
上一篇:删除文件:del
http://bbs.bathome.net/viewthread.php?tid=2962
下一篇:创建文件夹:md
http://bbs.bathome.net/viewthread.php?tid=3319
ren取自rename的前三个字母,name在英文中有“为……取名”的意思,而re是前缀,有“重新做某事”的含义,结合起来,rename就是重命名的含义。
ren 的用法很简单,其使用格式为:ren 旧文件 新文件名。例如,把test.txt改写为abc.txt,使用 ren test.txt abc.txt即可。
需要注意的是,旧文件可以使用绝对路径,也可以使用相对路径,但是,新文件名不能使用任何路径,只能是新的文件名,即使这个路径就是当前目录。例如:需要修改d:\test\abc.txt这个文件的名字为xyz.txt的话,如果当前路径位于d:\test,那么,命令可以写成:ren abc.txt xyz.txt、ren d:\test\abc.txt xyz.txt,但是,绝对不能写成ren d:\test\abc.txt d:\test\abc.txt这样的格式。之所以会有这个古怪的规定,可能是一旦把路径写成另外的目录,ren就具备了“移动文件+重命名文件”的功能了,这和它的定位不相符。
虽然ren的用法很简单,但是,它的功能却很强大,这主要得益于ren支持*和?这两个通配符:*表示任意多个字符,?表示一个字符。例如,要把所有的以.txt作为后缀名的文件改为以.doc作为后缀名,使用ren *.txt *.doc 即可,简简单单的一条语句,瞬间就改动了大量的文件,CMD命令简洁而又不失强大的特点在这里体现得淋漓尽致。又例如,要把以abc字符串打头、并且只有5个字符的txt文件改名为以xyz字符串打头,那么,可以这样写:ren abc??.txt xyz??.txt。
需要引起高度重视的是,ren在使用通配符的时候,它的匹配规则十分奇特且过于复杂,不适合新手理解,在此不再展开做详细的解释。若想了解其中的详情,请参考这篇帖子:这是不是ren的一个bug?
http://www.cn-dos.net/forum/viewthread.php?tid=29538
。若确实需要使用通配符,建议熟读这篇帖子;若实在难以理解,则退而求其次,只用通配符做后缀名的修改工作,可以不用深究这些复杂的规则。
对于文件夹,ren同样适用。
ren还有一个十分奇特的属性:当文件具备隐藏属性或系统属性的时候,ren将不起作用,需要把文件的隐藏或系统属性去掉方可更名,对只读属性的文件,ren可顺利更名。这在很多时候给我们制造了很多麻烦:当你不知道要即将更名的文件是否具备隐藏或系统属性的时候,直接ren是很成问题的,;如果希望在重命名文件的时候,还必须保持原有的文件属性,则更加让人痛苦万分。
怎么办?
如果不介意文件的属性是否被改动,那么,保险的做法是,用 attrib -s -h 命令先去掉文件可能存在的系统属性或隐藏属性,然后再ren之;如果还要求更名后的文件要保持原有的属性的话,高效的做法是:先用for语句中的 %%~ai 扩展获取原文件的属性,经过处理之后保存到变量中去,然后用 attrib -s -h 去掉文件可能存在的系统属性或隐藏属性,ren之后,再读取保留在变量中的属性值,用 attrib 恢复原有的文件属性。
————————————————————————————
感谢tireless在2楼的提醒。
2009.2.26 增添了如何重命名带系统属性或隐藏属性的文件的内容。
收藏
分享
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。
心在天山,身老沧州。
namejm
发短消息
加为好友
namejm
(闭关中)
当前离线
批处理代码写手
UID
5
帖子
1348
精华
8
积分
5183
PB
4236
技术
142
捐助
501
阅读权限
254
来自
四川-成都
在线时间
1842 小时
注册时间
2007-10-25
最后登录
2013-6-19
荣誉版主
帖子
1348
积分
5183
技术
142
捐助
501
注册时间
2007-10-25
2
楼
发表于 2009-2-12 22:52
|
显示全部帖子
呵呵,确实弄错了,又忘记了先做测试再正式发代码。其实这个问题以前曾在CN-DOS上有过讨论,你这一提醒我又想起来了,是这篇帖子:这是不是ren的一个bug?
http://www.cn-dos.net/forum/viewthread.php?tid=29538
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。
心在天山,身老沧州。
TOP
返回列表
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]