[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]批处理怎样一次压缩多个文件夹内的文件?

本帖最后由 tk1266 于 2012-1-14 16:17 编辑

有几千个文件夹,每个文件夹内有若干个文件,怎样一次批量压缩完所有文件,每个文件放到一个单独的压缩文件中.
压缩后用原文件名命名
压缩后删除原文件.

thanks.
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. set "rar=C:\Program Files\WinRAR\rar.exe"
  3. for /r "C:\Test\" %%a in (*.txt) do (
  4.     "%rar%" a -df "%%~dpa%%~na.rar" "%%a"
  5. )
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

谢谢.  昨晚10点.
第一次用10个文件夹测试成功.
第二次测试300个文件夹,每个文件夹120个文件,每个文件1KB.等了三个小时,还没处理完,后来睡着了.今早起来一看,BAT界面卡住了, 点关闭, 约30秒后界面才消失.  电脑疑似死机, 出现“系统资源不足,无法完成请求的服务”, 无法关机,  最后强制关机。

第一次都成功了,我想第二次,测试多点。。。呵呵

测试环境:XP SP2    双核2.1G   2G   350G

TOP

回复 3# tk1266


哪个版本的WinRAR?

TOP

本帖最后由 tk1266 于 2011-7-30 11:14 编辑
回复  tk1266


哪个版本的WinRAR?
CUer 发表于 2011-7-30 10:55



    版本可能低了点:  3.70.0.0
请教:
1.能不能提高效率?               
2.采用存储方式是不是可以大幅提高速度?
3.能不能不在代码里写入路径及目标文件格式?

谢谢.

TOP

回复 5# tk1266


怀疑是太频繁的调用rar.exe造成的,你先换个4.0版本的试试?不行我们再一起想办法

TOP

回复  tk1266


怀疑是太频繁的调用rar.exe造成的,你先换个4.0版本的试试?不行我们再一起想办法
CUer 发表于 2011-7-30 11:16


已升级到4.1版本,用少量(几个)文件夹测试是正常的,但效率还是不高.

TOP

回复 5# tk1266


把*.txt改成*.*
路径是指哪个路径?如果要把所有文件压缩之后放在当前目录,可以把%%~dpa删掉。

TOP

“系统资源不足,无法完成请求的服务”——这个和程序代码正确与否没有关系呢,可能你的操纵的文件太多了,耗费太多资源了。可以压缩分部分来压缩,不要一次压缩太多。
1

评分人数

    • CrLf: 乐于助人PB + 5
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复  tk1266


把*.txt改成*.*
路径是指哪个路径?如果要把所有文件压缩之后放在当前目录,可以把%%~ ...
CUer 发表于 2011-7-30 11:43



    我说的路径是指这个 C:\Test\

BAT放在目标文件夹同一级目录,   如果每次都要设置C:\Test\然后存为新的BAT,多了一个不必要的步骤.

TOP

“系统资源不足,无法完成请求的服务”——这个和程序代码正确与否没有关系呢,可能你的操纵的文件太多了, ...
cjiabing 发表于 2011-7-30 11:47


“系统资源不足,无法完成请求的服务”——是在BAT界面卡住时, 我点其他 图标后  弹出来的.

    每个文件1KB,  我手动压缩12200个用了11分钟,   包括压缩及删除原文件.    其中删除费时最长.

但用BAT处理远远超过了10分钟.

TOP

回复 10# tk1266


把"C:\test\"删掉

TOP

回复 11# tk1266


手工是把12200个文件压缩之后放到同一个rar文件里面吗?

TOP

回复  tk1266


手工是把12200个文件压缩之后放到同一个rar文件里面吗?
CUer 发表于 2011-7-30 12:32


同一个文件夹 ,每个文件压缩成独立的。

TOP

每个文件1KB, 我把12200个样本文件放在 123个 文件夹中, 每个文件夹100个文件。

执行BAT,
关闭防火墙,杀软 以及360, 速度会更快,耗时约20分钟。

TOP

返回列表