您的位置:首页 > 其它

关于批量重命名文件

2009-08-29 12:52 225 查看
不久前,我们软件工程系举行了全系大会。我在大会上做了简短的报告,主题是“学以致用、动手实践”。报告期间我说了一个亲身经历:以前校园内U盘病毒肆虐,病毒会把U盘里所有的文本文件加上系统属性和隐藏属性,并添加“.tmp”扩展名(例如原文件名为“a.txt”,病毒修改为“a.txt.tmp”),然后生成一个和原文件同名的病毒文件。我不幸中招,于是用我所学的知识写了一个小程序,几秒钟就解决了。

原以为它就像插播广告一样随听随忘,不料言者无心听者有意。几个学弟回去后也都竭尽所能玩了一把:有用 Java 的,也有用 C# 的……功能也五花八门,不仅能批量修改扩展名,还能按 1→N 的顺序批量重命名文件等等。看他们玩得不亦乐乎,想来那次报告还有点作用嘛^_^。

今天又被问起我那时候的程序是怎么写的。其实在我们大一那会儿,要用计算机只能到图书馆的电子阅览室。那儿的系统“干干净净”,不会有 VC++ 等编译器,而且那种打开网页需要半分钟的速度也不会让你考虑去下载(估计其他高校情况也差不多),所以我是用批处理解决的。我用了下面三条命令:

::a.bat

@echo off

::删除所有病毒文件

del /F /S /Q *

::递归地去掉文件的隐藏属性

attrib -s -h -r * /S /D

::遍历目录,去掉 tmp 扩展名

for /R . %%f in (*.tmp) do ren %%f %%~nf

上面的程序中是为了去掉“.tmp”这个扩展名,所以用 for 命令来遍历。但如果仅仅是修改扩展名则更简单,只要运行 ren *.bat *.txt 即可。另附一段好玩的批处理:将下面的代码保存成 bat 文件,双击运行就能将当前目录下的 jpg 图片文件按 1-N 的顺序重新命名(用来批量处理从网上下载下来的图片非常有效)。大家可以修改蓝色部分来改变扩展名。

::b.bat

@echo off

::开启延迟的变量扩充

setlocal enabledelayedexpansion

::计数器

set /a i=1

for /R . %%f in (*.jpg) do (

ren %%f !i!.jpg

set /a i=!i!+1

)

只要大家悉心观察,还有很多好玩的问题可以去解决,祝大家玩得开心^_^。

版权声明

请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“redraiment”和主站点地址,方便其他朋友提问和指正。

联系方式

我的邮箱,欢迎来信(redraiment@gmail.com

我的Blogger(子清行):http://redraiment.blogspot.com/

我的Google Sites(子清行):https://sites.google.com/site/redraiment

我的CSDN博客(梦婷轩):http://blog.csdn.net/redraiment

我的百度空间(梦婷轩):http://hi.baidu.com/redraiment
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: