博 言
小表弟是个下载狂人,不过下载的习惯不好,很多东西都是一股脑地直接保存在下载目录中,搞得迅雷的下载目录不是一般的乱。进来他忽然心血来潮,想按照文件的扩展名整理一下,可是又觉得麻烦,就求救与我。我当然义不容辞,祭起了自己的批处理大旗……
坐到了小表弟的电脑面前,打开了他的下载目录,才发现他所谓的“乱”一点不亏张:软件、音乐、电影、文档,都不分章法地放在一起(如图1)。
轻而易举 · 分类保存文件
小表弟的整理思路很简单,他只希望按照文件类型进行分类排序,将保存到以文件后缀为名字的目录中,不过,这样手工操作起来对于表弟这种电脑菜鸟来说,很烦琐。
了解他的要求后,我就简单写了这样一个批处理文件(保存为BatchSort.cmd):
for %%i in (*) do (
if not exist %%~xi md %%~xi
move *%%~xi %%~xi)
把该批处理复制到需要整理的文件夹中,双击执行它,就可以快速实现按扩展名分类整理文件,整理后会自动创建以文件扩展名命名的文件夹,并按文件类型移动相应文件到各自类型的文件夹中(如图2)。需要注意的是,这个批处理只对当前文件夹下的文件进行整理,而不会对其下的子文件夹进行处理。
博大精深 · for指令
小表弟并不是一个不求甚解的家伙,他虽然使用这个批处理快速搞定了文件整理,但看到这么神妙的批处理,就纠缠着让我给他介绍一下是怎么实现的。
1.获取帮助有玄机
D O S下的批处理命令,设计到很多复杂的指令,我实在没有时间给他一一介绍,但看他如此好学,又不忍拒绝,于是就告诉他一个最简单的获取帮助的方法。
对于DOS下的大多数指令来说,如果要获取帮助信息,只要打开命令行提示符,输入该指令后,后面加一个“/?”就可以看到详细的帮助信息了(还是简体中文的哦)。比如,要想知道for指令的用户,就输入(如图3):
小表弟看到我的批处理,就一字一句地直接在命令行输入,结果却发现——不能正确运行。那是因为,for指令中使用变量参数有个规矩:在命令行中需要使用%i代表参数,而批处理文件中则是%%i——后者比前者多个%号。
2.批处理,待你完善
虽然这个批处理已经大致满足了表弟的需求,不过他还有些意犹未尽,希望这个批处理能更完美一些。比如,可以自动识别某些文件,并且归类到比较直观的目录中,例如将rmvb、avi等文件自动放置到“电影”目录中,将exe、rar和zip文件自动放置到“软件”目录中……
编者注:由于时间关系,作者并没有将完善的批处理拿出来,欢迎广大读者朋友参与修改,并发给我:pcd2os@gmail.com。有可能,你的批处理也会被刊登到杂志上与广大朋友们见面哦。另外,为了方便大家,我们将本文的批处理放在了PCD的下载站点,欢迎大家下载(http://work.newhua.com/pcd)。