Welcome to zimmerman's blog!

初学->进阶->高手 有很长的路要走
美静->若英->我说 有许多的歌可听

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
因为要看linux内核源代码,太多不能在电脑上时时盯着看,所以准备把它放到MP4里看,可是现在的MP4多数只支持.txt格式的,所以要把那些.c和.h等都改一下名字.当然我们不可能一个个名字改.所以要用到批量重命名.
 
在windows下即使用ren *  *.txt也只能改一个文件夹内的文件,可是linux内核有很多文件夹,而ren  并没有提供递归办法.-r

写程序当然可以完成此任务,不过为改下名就写个程序有点杀鸡用牛刀了.
突然想念起linux shell.不过现在在windows下.就写个bat吧.写个bat文件也太小题大作,那就写一行命令吧.呵呵.
不过我们可以用一个for 来解决这一切咯.改这数以上万个文件,只要下面这一句话.
 
for /r . %a in (*) do @if not %~xa == .txt ren %a %~nxa.txt
 
以上的命令递归更改当前目录下的除.txt文件外的所有文件的文件名为*.txt
我在新的文件名中保存的原文件的扩展名,原因是对诸如hello.c 和hello.h 作重命名为hello.c.txt 和hello.h.txt 作一个区分而已.

NOte: 此改名命令有所危险,直接对原文件改名了.建议对原文件夹备份一份哦.出事可别找我咯..放心,改名不满意你就用这命令改回去咯.[for /r . %a in (*.txt) do  @ren %a %~na ]

愿对你有用.

posted on 2007-10-12 11:58  zim.NET  阅读(1893)  评论(1编辑  收藏  举报