找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 62156|回复: 19

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

[复制链接]
发表于 2011-7-29 16:52:17 | 显示全部楼层 |阅读模式
本帖最后由 tk1266 于 2012-1-14 16:17 编辑

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

thanks.

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-29 20:34:49 | 显示全部楼层
  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技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

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

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

测试环境:XP SP2    双核2.1G   2G   350G
发表于 2011-7-30 10:55:17 | 显示全部楼层
回复 3# tk1266


哪个版本的WinRAR?
 楼主| 发表于 2011-7-30 11:13:11 | 显示全部楼层
本帖最后由 tk1266 于 2011-7-30 11:14 编辑
回复  tk1266


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



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

谢谢.
发表于 2011-7-30 11:16:10 | 显示全部楼层
回复 5# tk1266


怀疑是太频繁的调用rar.exe造成的,你先换个4.0版本的试试?不行我们再一起想办法
 楼主| 发表于 2011-7-30 11:37:37 | 显示全部楼层
回复  tk1266


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


已升级到4.1版本,用少量(几个)文件夹测试是正常的,但效率还是不高.
发表于 2011-7-30 11:43:49 | 显示全部楼层
回复 5# tk1266


把*.txt改成*.*
路径是指哪个路径?如果要把所有文件压缩之后放在当前目录,可以把%%~dpa删掉。
发表于 2011-7-30 11:47:15 | 显示全部楼层
“系统资源不足,无法完成请求的服务”——这个和程序代码正确与否没有关系呢,可能你的操纵的文件太多了,耗费太多资源了。可以压缩分部分来压缩,不要一次压缩太多。

评分

参与人数 1PB +5 收起 理由
CrLf + 5 乐于助人

查看全部评分

 楼主| 发表于 2011-7-30 12:01:20 | 显示全部楼层
回复  tk1266


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



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

BAT放在目标文件夹同一级目录,   如果每次都要设置C:\Test\然后存为新的BAT,多了一个不必要的步骤.
 楼主| 发表于 2011-7-30 12:04:46 | 显示全部楼层
“系统资源不足,无法完成请求的服务”——这个和程序代码正确与否没有关系呢,可能你的操纵的文件太多了, ...
cjiabing 发表于 2011-7-30 11:47


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

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

但用BAT处理远远超过了10分钟.
发表于 2011-7-30 12:30:13 | 显示全部楼层
回复 10# tk1266


把"C:\test\"删掉
发表于 2011-7-30 12:32:55 | 显示全部楼层
回复 11# tk1266


手工是把12200个文件压缩之后放到同一个rar文件里面吗?
 楼主| 发表于 2011-7-30 12:38:29 | 显示全部楼层
回复  tk1266


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


同一个文件夹 ,每个文件压缩成独立的。
 楼主| 发表于 2011-7-30 12:40:37 | 显示全部楼层
每个文件1KB, 我把12200个样本文件放在 123个 文件夹中, 每个文件夹100个文件。

执行BAT,
关闭防火墙,杀软 以及360, 速度会更快,耗时约20分钟。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 15:37 , Processed in 0.015500 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表