批量压缩RAR文件

成千上万个文件要一个一个压缩,那得累死。。。。。

      首先在我们处理之前需要对所有文件简单进行分析

      在CMD命令提示符下进入我要找的目录简单查看一下

    cd download

    dir /b |find "%"

    dir /b |find "&"

    查找一下有特殊字符的文件 以免批处理在处理过程中出现错误中断的情况,因为原先压缩文件为了防止病毒的病毒感染处理 做了固实压缩模式, 固实压缩文件是 RAR 的一种特殊压缩方式存储的压缩文件,它把压缩文件中的全部文件都当成一个连续数据流来看待。固实压缩文件只支持 RAR 格式的压缩文件,ZIP 压缩文件永远是非固实的。RAR 的压缩文件可由用户决定选择固实或非固实的压缩方式。所以要直接添加文件肯定不行的。 所以要添加内容需要将原先的文件全部读取解压一次,然后重新压缩打包。思路有了就开始动手了。

以下是我的批处理部分

d:
cd 1
path=c:\program Files\WinRAR
for %%a in (*.rar) do rar x -pxxxxxx "d:\1\%%a" "d:\0\%%a\" &&rar a -pxxxx -r0 -ep1 -- "d:\2\%%a" "d:\0\%%a\*"&&rd /s /q "d:\0\%%a\"&&rar c -z"D:\zhushi.txt" "d:\2\%%a"&&rar s "d:\2\%%a"&&del d:\2\%%a&&move "d:\2\*.exe" "d:\1" 
pause

这里我也不多解释了 就简单说下需要注意的地方

第一 path=c:\program Files\WinRAR 这行是为了加载rar的处理模块因为默认CMD是不支持rar命令的,我们需要加载一下他的环境变量进来,这样在调用处理自解压文件时 缺少sfx模块,如果不加这句就会报错。

rar 命令后面跟了很多参数具体参数用途你可以参考rar的chm帮助文档。 我这里是解压了一个带密码的rar文件然后解压到了rar的一个文件夹下,如果你觉得这样不好看想单独处理的话也可以考虑提取一个处理变量用

dir /b *.rar >>1.txt

set bl=

for /f %%a in (1.txt) do set bl=%bl% %%a

set bl= %bl%设置一下然后在处理这个变量时用%bl:~0,-4%取文件名创建文件夹 或者也可以用

FOR /F "tokens=* delims=.rar" %%b in (1.txt) do set bl=%bl% %%b &mkdir %%b

这样来处理文件夹名字问题.


我给出来最上面的脚本是为了实现文件解压后打包然后变成自解压文件的过程。



文章来自: 网络
引用通告地址: http://www.cn-sohu.com/bolg/trackback.asp?tbID=261
Tags:
评论: 0 | 引用: 124 | 查看次数: 245
发表评论
你没有权限发表留言!
分享到: