中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » for 调用winrar批量生成压缩文件 大家帮忙看看
<<   [1] [2]  >>   >
作者:
标题: for 调用winrar批量生成压缩文件 大家帮忙看看 上一主题 | 下一主题
txtrain
初级用户





积分 28
发帖 12
注册 2007-1-19
状态 离线
『楼 主』:  for 调用winrar批量生成压缩文件 大家帮忙看看

目的是这样的: 我当前目录下有好多文件夹,里面分别放着不同的文件夹和文件,大小几M到几百M不等.我就想以当前目录为基准,进入目录,压缩,做成自解压包,删除压缩包,退出文件夹,如此这样徇环,直到把所有的文件夹都压缩完.其中关于调用winrar的环境变量以及相关的winrar参数(因为设置针对图形界面生效,所以必须调用winrar来完成)已经设置完毕,直接调用就可以了.我是这样写的:for /f %a in ('dir /b') do cd %a &winrar a -r x:\%a.rar&winrar s x:\%a.rar&del x:\%a.rar&cd ..就这样.但是在实际执行的过程中,第二个winrar命令不等第一个执行完就执行!因为工作量非常大,所以实在苦恼.请大家支个招.我已经反复实验过N遍了.用echo语句生成批处理肯定好使,但是我想更进一步,直接一条命令完事,高手指教.谢谢! [ Last edited by txtrain on 2007-2-6 at 10:15 AM ]


2007-2-6 23:02
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 2 楼』:  

换成 WinRAR 目录下的 RAR.EXE 来加参数压缩(命令行界面)。 这样兄在执行压缩任务的时候 RAR.exe 是当前任务完成后,后面的命令才会执行,这样就可以正常进行先压缩再执行转换的工作了~:) “其中关于调用winrar的环境变量以及相关的winrar参数(因为设置针对图形界面生效,所以必须调用winrar来完成)”, 把 rar.exe 文件拷贝到Windows目录内(因环境变量已含有Windows路径),这样就可以在任何地方直接调用 RAR.EXE 了:) (这样可以省去手工添加 rar.exe 所在路径的设置) [ Last edited by redtek on 2007-2-6 at 10:44 AM ]




    Redtek,一个永远在网上流浪的人…… _.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-2-6 23:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
txtrain
初级用户





积分 28
发帖 12
注册 2007-1-19
状态 离线
『第 3 楼』:  

以前试过用rar肯定没有问题,但是winrar有个参数叫"压缩方式":最好:我需要这一项,好像在rar没有找到这个参数哟


2007-2-6 23:51
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 4 楼』:  

m<0..5> 设置压缩等级 (0-存储...3-默认...5-最大) rar a /r /m5 ..... M5参数是最大比率压缩:)




    Redtek,一个永远在网上流浪的人…… _.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-2-7 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
txtrain
初级用户





积分 28
发帖 12
注册 2007-1-19
状态 离线
『第 5 楼』:  

那么winrar里面的压缩方式最好是,0呢,还是5呢,想不明白


2007-2-7 00:06
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 6 楼』:  

Winrar 加 /m5 参数是最大压缩比:) 分别用 winrar a /r /m5 ...  和 Winrar a /r /m0 ... 对比压缩同一目录,它们相差很多, 加/m5 参数的压缩比最大:) [ Last edited by redtek on 2007-2-6 at 11:14 AM ]




    Redtek,一个永远在网上流浪的人…… _.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-2-7 00:13
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
txtrain
初级用户





积分 28
发帖 12
注册 2007-1-19
状态 离线
『第 7 楼』:  

也就是说0是压缩最好了?其实你用winrar直接设置就成了,还加什么参数? 我之所以一直想直接调winrar就因为直接设置好了.不用加参数 [ Last edited by txtrain on 2007-2-6 at 11:16 AM ]


2007-2-7 00:15
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 8 楼』:  

WinRAR (/M5 参数可以最大化压缩,把文件压缩到尽可能的最小:) 调用 WinRAR 确实不错~:) 不过我喜欢命令行,不太喜欢图形界面(主要是打字速度快,哈哈)




    Redtek,一个永远在网上流浪的人…… _.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-2-7 00:23
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
txtrain
初级用户





积分 28
发帖 12
注册 2007-1-19
状态 离线
『第 9 楼』:  

我要疯了,redtek你有没有环境自己试验一下 for /l %a in (1,1,9) do @echo %a >>%a.txt for /l %a in (1,1,9) do mkdir %a for /l %a in (1,1,9) do move %a.txt %a\ 然后再给那几个目录里再拷点其它的文件夹和文件,压缩一下试试 for /f %a in ('dir /b') do cd %a&&rar a /r x:\%a.rar&&winrar s x:\%a.rar&&del x:\%a.rar&&cd .. 你自己看下是什么结果吧 一直忘记说了,我的测试环境是xp sp2 winrar版本: RAR 3.50 beta 3 版权所有 (c) 1993-2005 Alexander Roshal 22 Apr 2005 注册给 - Internet - [ Last edited by txtrain on 2007-2-6 at 11:37 AM ]


2007-2-7 00:29
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 10 楼』:  

压缩 NOTEPAD.EXE 记事本测试:
C:\WINDOWS>dir notepad.exe
 驱动器 C 中的卷是 DISK-C
 卷的序列号是 4089-CA39

 C:\WINDOWS 的目录

2003-03-27  20:00            65,536 NOTEPAD.EXE
               1 个文件         65,536 字节
               0 个目录  3,117,764,608 可用字节

C:\WINDOWS>winrar a /m5 n1 notepad.exe

C:\WINDOWS>winrar a /m0 n2 notepad.exe

C:\WINDOWS>dir n?.rar
 驱动器 C 中的卷是 DISK-C
 卷的序列号是 4089-CA39

 C:\WINDOWS 的目录

2007-02-06  11:48            34,459 n1.rar
2007-02-06  11:48            65,606 n2.rar
               2 个文件        100,065 字节
               0 个目录  3,117,658,112 可用字节
2007-02-06 11:48 34,459 n1.rar (这个是 /M5 压缩的,最好) 2007-02-06 11:48 65,606 n2.rar (这个是 /M0 压缩的) WRAR 3.0 未注册版 系统: 名称: WindowsServer 2003, Enterprise Edition 版本: 5.2 内部版本 3790 [ Last edited by redtek on 2007-2-6 at 11:49 AM ]




    Redtek,一个永远在网上流浪的人…… _.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-2-7 00:47
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 11 楼』:  

我喜欢命令行下的 7z


2007-2-7 00:51
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 12 楼』:  

帮你顶上去吧,我也想弄明白,你的问题?


2007-2-7 01:01
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
txtrain
初级用户





积分 28
发帖 12
注册 2007-1-19
状态 离线
『第 13 楼』:  

我想我的问题确切的说是,连续调用两个外部命令,后一个不能等前一个执行完再执行


2007-2-7 02:16
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 14 楼』:  

Originally posted by txtrain at 2007-2-6 13:16: 我想我的问题确切的说是,连续调用两个外部命令,后一个不能等前一个执行完再执行
不好意思,刚才只注意探讨压缩比率了,忘了走题了:)
Start  /w   WinRAR.exe  a  /r ...... 压缩命令……
这样,只有 WinRAR 压缩任务运行完以后才会继续向下执行以下的命令:) 兄可将压缩的命令与转换 .rar 文件为自解压的命令分开两行写,不用 & 来连接它们为一行,这样 Start /w 参数就可以让它们执行完一个再执行一个,而不是并发方式的执行:) 即:
Start   /w    第一个命令
Start   /w    第二个命令
这样第一个命令执行完以后,第二个命令才会被执行:) 不会是我又看走题了吧? 上面是后一个命令等前一个命令执行完以后再执行:) 兄所说 “连续调用两个外部命令,后一个不能等前一个执行完再执行” ,后一个不等前一个命令执行完再执行就是说:并发运行对吧? Start 第一个命令 Start 第二个命令 [ Last edited by redtek on 2007-2-6 at 01:38 PM ]


   此帖被 +2 点积分    点击查看详情   
评分人:【 txtrain 分数: +2  时间:2007-2-7 02:52




    Redtek,一个永远在网上流浪的人…… _.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-2-7 02:33
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
txtrain
初级用户





积分 28
发帖 12
注册 2007-1-19
状态 离线
『第 15 楼』:  

我可以很负责任的告诉你,试过了,不行 晕了,又试了一次行了,看来我的实际工夫还是做的不到位,谢谢了!!! [ Last edited by txtrain on 2007-2-6 at 01:53 PM ]


2007-2-7 02:39
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: