dos.bat 批处理文件的应用——批量压缩

我经常在电脑上看漫画,自从用了MangaMeeya后,通常都把下载下来的漫画压缩为rar文件。这样有几个好处,一是节省空间,二是在电脑中,对一个文件的处理速度要快于多个文件,复制粘贴就是一个例子,很多人应该都是感受,明明所复制的文件容量不大,只是数量很多,速度却比容量大一些,数量少的时候要慢。删除也是,我在重装后删除以前留下的matlab时,光是准备就要很久。而我那有几十G的下载文件夹,却两三秒就删干净了。

  下载漫画一般除了个verycd上直接下载的压缩文件,就是使用MangaDowner,它下载下来的是图片。以前我下载的漫画不多,压缩倒也不麻烦,前段时间把以前下载的漫画和新下载的漫画放在一些,发现未做成压缩文件的有很多。我通常用一个文件夹放一卷,现在有几百个文件夹,我要把一个文件夹做一个压缩文件(太多图片压缩在一起也会影响MangaMeeya的读取速度)。这要是一个个压缩真得点鼠标点到手抽筋了。比如说,我要把左图的文件夹变成右图的rar文件。

批处理文件的应用鈥斺斉垦顾批处理文件的应用鈥斺斉垦顾

  于是我从网上找批量压缩用的软件,倒是找到了,不过试用了才发现是用来将一个文件同时添加到多个压缩文件中用的,不是我需要的功能。继续搜索此类软件但还是没有找到。我就想到了用DOS命令行来批量压缩。

  我只是感觉用DOS命令行可以,但不知道怎么做。于是又搜索教程,这网上倒是很多,学起来也很快,我很快便搞定了。现在总结一下方法。

  因为以后会经常使用,所以创建一个bat文件。可以新建一个txt文件,将扩展名改为bat就行。

  右键点击bat文件,选编辑。输入下列文字。

@echo off
FOR /D %%C IN (*) DO (
rar a %%C %%C
if errorlevel 0 rmdir /s %%C
)

  保存,将这个文件和要压缩的文件夹们放于同一目录,运行即可。(注意!前提是将winrar安装文件夹加入环境变量。如果不会添加环境变量,就将这句话里的rar改为path/rar.exe,其中path是winrar的安装路径,如C:/Program Files/WinRAR/rar.exe a %%C %%C,请务必保证这个命令存在,否则即使没压缩也会删掉文件夹,我懒得写一个更安全的bat文件了.....)

  对以上命令的解释:

  第一行的@echo off 没有太大作用,只是让下面的命令执行时不在窗口上显示。

  第二行的FOR就是重点了。FOR大家都知道,和C语言等编程语言一样,是循环。/D %%C IN (*)表示遍历所有的文件夹(不包括子文件夹)。如果没有/D则是遍历所有的文件(不包括文件夹)。%%C里的C是个循环变量名,就像C语言里常用的i一样,它可以是任意字母,但只能是一个字母,两个%不可少。IN (*)里的*表示所有,是通配符,这里可以打文件名,比如我们要压缩以乌龙开头的文件夹,就可以写成IN (乌龙*)。DO后括号里的语句就是循环体了。

  rar是一个命令,我们可以在winrar的安装文件夹里找到rar.exe程序。如果不会添加环境变量,就将这名话里的rar改为path/rar.exe,其中path是winrar的安装路径。rar命令(因为是rar.exe,称为程序也行)后的a是参数,表示创建rar文件。后面跟了两个%%C,第一个是创建的rar文件的名字,第二个是被压缩的文件的名字。这一行的意思就是将一个文件夹压缩为与它同名的rar文件。

  事实上这时候我要的功能已经实现了,但压缩完了以后又有一个问题,就是原来的图片还是要删掉的,不然留着占不少地方。虽然在windows下删除多个文件夹很方便,但能省事岂不更好。于是就有了下一句。if errorlevel 0是判断上一个命令(在这里就是rar.exe)的执行结果是否是0,我从rar的帮助中查到,执行结果返回0则表示压缩成功。rmdir是删除文件夹的命令,/s表示除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。如果再加上/q,就表示不提示,没有/q的话,每次删除都会询问是否确定删除。这一行的意思就是如果压缩成功,就删除被压缩的文件夹。

  下面是运行时候的截图,运行完这个窗口自己就关闭了。

  通过这次学习批处理命令,我深深感觉到它的方便之处。目前windows的缺点便在于不能随意定制命令或功能。批处理在一定程度上解决了这个问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值