WinRAR提供了一个使用简单但工作效率极高的压缩控制台命令RAR。深入了解和应用这个鲜为人知的功能,可以灵活打造复杂的压缩备份方案。 大家常用WinRAR备份文件,通常做法是右键单击一个或多个文件或文件夹进行压缩或解压操作。但是,如果遇到一次要处理多个压缩任务的情况,图形界面操作起来就比较费周折甚至难以实现。好在,WinRAR压缩软件提供了一个控制台命令程序,我们可以借助它灵活地自行创建复杂的备份方案。 案例:打造一键多任务备份 任务描述 我有放置于不同分区的几个文件夹:“D:\工作文档”“E:\电子图书”“F:\精美壁纸”“F:\精选音乐”,这些文件夹中收藏了一些个人资料或下载的精品内容,每隔一定时间需要压缩备份到移动硬盘上,以防丢失。 最近,根据实际需要,我计划要备份“D:\工作文档”文件夹下的所有DOC文档、“E:\电子图书”文件夹下的所有PDF电子书、“F:\精美壁纸”文件夹下的所有图片和“F:\精选音乐”文件夹下的所有MP3类文件。 如果按照通常的做法,我需要到不同的分区逐个选择文件夹进行压缩,然后将生成的RAR压缩包逐个拷贝到移动硬盘的备份目录中,但这样操作起来显然比较麻烦。 那么,有没有效率更高,更灵活方便的方案可以实现这个任务,并且在今后可以方便地执行备份任务呢? 实现思路 借助于WinRAR的压缩控制台命令RAR,只需要编辑一个备份任务的列表清单TXT文件,然后用一个备份控制台命令RAR调用这个清单文件,就可实现成批任务的一次自动备份,而且任务的增删修改和维护也极其简单,只需用记事本修改TXT列表文件即可。 小知识: 控制台RAR命令行说明: RAR <命令> [ -<开关> ] <压缩文件> [ <@列表文件...> ][ <文件...> ] [ <解压路径\> ] 其中最关键最灵活的是命令行选项(命令和开关),它提供了使用RAR创建和管理压缩文件的丰富的控制方法。 命令是一个字符串(或单个的字母),命令RAR去执行一个相应的操作。开关被用来改变RAR执行操作的方法。其它参数是压缩文件名和被压缩的文件或要从压缩文件中被解压文件。 列表文件是一个包括处理的文件名的纯文本文件。第一列应该以文件名开始。可以在//字符后添加注释。 基本方案构造 1. 准备压缩控制台 首先,我需要用到一个压缩控制台命令程序RAR.EXE,该程序位于WinRAR安装目录中(一般为C:\Program Files\WinRAR文件夹下)。将该程序拷贝到目标备份文件夹下(比如移动硬盘的某文件夹下或硬盘数据备份分区的某文件夹中);也可以选择不拷贝该文件,但需要将该文件加入系统的路径搜索环境变量中(后面讲到)。 2. 构造备份列表 接下来,用记事本编辑一个包含下列4行字符串的列表文件backup.lst(//及其后面的字符为说明部分,均可省略)(图1),将该文件存放在要备份的文件所在文件夹中。
D:\工作文档\*.DOC //只备份DOC文档 E:\电子图书\*.PDF //只备份PDF文件 F:\精美壁纸\*.* //备份所有文件 F:\精选音乐\*.MP3 //只备份MP3文件 注意,存盘时选择文件类型为“所有文件(*.*)”,文件名设为backup.lst方可正确存盘(图2)。或者用传统的办法先将文件保存为backup.txt,然后在“文件夹选项”中取消对文件扩展名的隐藏,再将文件扩展名改为lst。
3. 构造批处理文件 最后,在存放备份文件的磁盘文件夹中,用记事本建立如下内容的批处理文件Backup.bat文本文件(图3)。
path c:\program files\winrar;%path% rar a -r My-backup.rar @backup.lst 批处理内容只有如上两行,下面作出具体解释。 因为我们要调用压缩控制台程序RAR.exe,要求在系统的环境路径中能找到该程序,因此需要用在命令提示符窗口中用path c:\program files\winrar;%path%命令为系统添加搜索路径。这条命令中,分号之前的path c:\program files\winrar表示添加新路径,分号之后的%path%表示追加原有系统路径。如果已经将RAR.EXE程序拷入目标目录中,则该行命令可以省略不写。 第二条命令rar a -r My-backup.rar @backup.lst则是执行批量压缩任务的核心命令,其中的参数a表示添加文件到压缩文件中,-r选项开关表示连同各级子目录一同扫描处理压缩,@backup.lst是指按backup.lst列表中指定的文件夹逐个进行压缩处理。 执行一键备份 经过如上操作,我们在备份目标目录中建立了两个文件,一个列表文件backup.lst,一个是批处理文件Backup.bat。在需要备份的时候,只需双击执行批处理文件Backup.bat,即可在目标文件夹下获得一个压缩备份文件My-backup.rar,完成备份任务(图4)。其中含有所有我们需要的所有备份文件。
方案变更方法 我的工作任务或收藏文件夹不可能一成不变,很可能在以后会增加或减少项目,或者改变一些项目。那么,当需要备份的项目发生变化时,压缩方案的改变麻烦吗?还需要重新构造程序吗?别担心,非常简单! 1. 去除备份项目 如果你的压缩方案中有项目需要减少,例如,需要将对“F:\精选音乐”文件夹的备份取消,那么,你只需用记事本打开Backup.lst文件,将“F:\精选音乐\*.MP3”一句删除并将文件存盘即可。 2. 添加新的备份 假如,你目前新增了一个备份项目,如在“G:\MyDOC\Excel”文件夹中建立了许多表格和数据库需要备份,那么只需在Backup.lst文件中增加一行“G:\MyDOC\Excel\*.*”即可。 3. 修改备份项目 除上述情况之外的,任何对备份项目的修改,都可以随时用记事本打开Backup.lst文件,对其进行编辑。这样一来,项目的更改就变成对一个文本文件的简单编辑工作。而备份项目的执行方式永远不变,始终都是直接执行那个批处理文件Backup.bat,这个文件不需要改动。 上面是一个综合备份的例子。实际上,压缩控制台程序RAR的用法十分灵活,通过改变参数和选项,我们可以用它实现各种各样的压缩任务。下面再介绍一个是否包含子目录的压缩案例的灵活实现方法。 案例:是否包含子目录的压缩 任务描述 假设要把Bitmaps文件夹中的文件全部压缩到Pictures.rar文件中,如何用以上介绍的压缩控制台命令来指定包含还是不包含各级子文件夹呢? 实现过程 通过灵活配合运用参数、开关、路径和通配符,就可以实现希望的目标。具体到这个问题: 下面的命令会把 Bitmaps目录和它的子目录中的所有文件添加到RAR压缩文件Pictures.rar中(图5):
rar a -r Pictures.rar Bitmaps\* 因为如果目录包含文件掩码或以反斜线结尾,将会应用普通的规则,普通规则中是不默认包含子目录处理的,这时如果你要连同它的子目录一同处理,需要指定-r开关。 下列命令会把Bitmaps目录中除了子目录外的所有文件添加,因为未指定开关-r(图6):
rar a Pictures.rar Bitmaps\* 但是,作为一个特别的例外,如果目录名Bitmaps被作为参数指定并且不包含文件掩码和以反斜线结尾,即使没有指定-r开关,目录和子目录的所有内容都会被添加到压缩文件中。具体用下面这条命令来实现(图7):
rar a Pictures.rar Bitmaps 小技巧: 如果希望了解关于压缩控制台程序RAR的详细参数和选项,可在命令提示符窗口中执行RAR /?命令获得。如果要将获得的命令记录下来,可用RAR /? >RAR-hlp.txt命令将显示列表存入RAR-hlp.txt文件中(图8)。 |