标题: [文件操作] 批处理怎样批量解压RAR文件? [打印本页]
作者: conglin58 时间: 2010-6-19 01:33 标题: 批处理怎样批量解压RAR文件?
刚才看了一篇:http://www.bathome.net/viewthread.php?tid=7656
批处理怎样解压缩带密码的RAR自解压文件?"D:\WinRAR\rar.exe" x -p123456789 *.exe 123\
这样批量解压如果2个压缩包内都有setup.exe,文件名相同的话就会直接覆盖了!
请问版主或其他bat高手,这123\ 后面加什么参数才能做到【解压每个压缩文件到各自单独的文件夹】
第二个问题:批处理怎样解压带不相同密码的RAR自解压文件?
比如
c:\a.rar 解压密码:123
C:\b.rar 解压密码:234
C:\C.rar 解压密码:345
这样三个rar文件 ,代码要怎样写才能做到批量解压?
附件下载:
http://bathome.net/attachment.php?aid=2652
[ 本帖最后由 conglin58 于 2010-6-29 17:28 编辑 ]
作者: hanyeguxing 时间: 2010-6-19 07:51
第一个问题:
方法1:使用-or开关自动重命名
方法2:- for %%a in (*.exe) do "D:\WinRAR\rar.exe" x -p123456789 "%%a.exe" "123\%%a\"
复制代码
第二个问题:代码的编写取决于文件名于与密码的规则对应情况。以楼主的示例:- @echo off&setlocal enabledelayedexpansion
- for %%a in (a123,b234,c345) do (
- set "a=%%a"
- "D:\WinRAR\rar.exe" x -p!a:~1! -or "!a:~0,1!.exe" "123\"
- )
复制代码
作者: conglin58 时间: 2010-6-22 01:30
新建一个txt文档,然后把所有的解压密码都复制进去,每行一个密码,然后在进行批量解压时让rar软件读取该文件中的密码
以这样的形式能用批处理搞定吗?
作者: sgaizxt001 时间: 2010-6-22 09:00
可以,下面这个代码由于时间来不及了我没有测试
- @echo off
- for %%a in (*.rar) do (
- for /f "delims=" %%b in (pass.txt) do (
- "D:\WinRAR\rar.exe" x -p%%b "%%a" *.* "%%a\"
- )
- )
复制代码
作者: wtwl 时间: 2010-6-22 15:03
高手啊,学习了!!!
作者: hanyeguxing 时间: 2010-6-22 15:22
原帖由 conglin58 于 2010-6-22 01:30 发表
新建一个txt文档,然后把所有的解压密码都复制进去,每行一个密码,然后在进行批量解压时让rar软件读取该文件中的密码
以这样的形式能用批处理搞定吗?
你测试过2楼的代码?显然你没有。你想不到、做不到,只能说你没这个能力而已,不代表别人就做不到。
作者: conglin58 时间: 2010-6-25 00:49
c:\a.rar 解压密码:123
C:\b.rar 解压密码:234
C:\C.rar 解压密码:345
这样三个rar文件 ,代码要怎样写才能做到批量解压?
-----------------------------------------------------------------------------------------------
@echo off&setlocal enabledelayedexpansion
for %%a in (a123,b234,c345) do (
set "a=%%a"
"D:\WinRAR\rar.exe" x -p!a:~1! -or "!a:~0,1!.exe" "123\"
)
-----------------------------------------------------------------------------------
RAR 3.93 版权 (C) 1993-2010 Alexander Roshal 15 三月 2010
已注册给 Federal Agency for Education
不能打开 a.exe
系统找不到指定的文件。
没有要解压的文件
RAR 3.93 版权 (C) 1993-2010 Alexander Roshal 15 三月 2010
已注册给 Federal Agency for Education
不能打开 b.exe
系统找不到指定的文件。
没有要解压的文件
RAR 3.93 版权 (C) 1993-2010 Alexander Roshal 15 三月 2010
已注册给 Federal Agency for Education
不能打开 c.exe
系统找不到指定的文件。
没有要解压的文件
朋友你这么有信心的让我测试怎么结果却是这样的???
原帖由 hanyeguxing 于 2010-6-22 15:22 发表
你测试过2楼的代码?显然你没有。你想不到、做不到,只能说你没这个能力而已,不代表别人就做不到。
试问你怎么知道我没测试过呢???来论坛提问就是为了学习的,最关键的是我想到了,所以才会提问,但好像是你写的代码做不到我想要的结果???
我不怀疑你对批处理的编译能力,但却很担心你对中文的理解能力,r u chinease?
既然你是技术组成员,至少应该自己先测试一下结果吧,我也很想问问你自己测试过2楼的代码?显然你才是没有。要不然也不会有这个结果了!指责别人之前应该先审视一下自己,大家以礼相待,你又何必呢?
作者: sgaizxt001 时间: 2010-6-25 00:53
你的压缩包里有a.exe吗
作者: conglin58 时间: 2010-6-25 04:51
@echo off&setlocal enabledelayedexpansion
for %%a in (a123,b234,c345) do (
set "a=%%a"
"D:\WinRAR\rar.exe" x -p!a:~1! -or "!a:~0,1!.exe" "123\"
)
把红色的地方改成rar
@echo off&setlocal enabledelayedexpansion
for %%a in (a123,b234,c345) do (
set "a=%%a"
"D:\WinRAR\rar.exe" x -p!a:~1! -or "!a:~0,1!.rar" "123\"
)
总算能解压了!但该批处理指定了abc这三个rar文件的密码,要是需要解压的文件多的话还是一样麻烦!
一晚上没睡觉我终于找到个软件能搞定,
作者: nx8o9iyxbq1m 时间: 2010-6-25 14:34
加一个 -ad 参数,可以解压每个压缩文件到各自单独的文件夹
作者: conglin58 时间: 2010-6-29 17:19
那正确的代码是不是以下这样?
for %%a in (*.exe) do "C:\Program Files\WinRAR\rar.exe" x -p123456789 -ad *.exe
for %%a in (*.exe) do "C:\Program Files\WinRAR\rar.exe" x -p123456789 "%%a" -ad *.exe
顺便问一下%%a是代表什么含义?刚才我测试了!好像是第二个批处理能顺利解压,第一个批处理不行!
请问类似这样的参数详细说明论坛有相关的帖子看看吗?
[ 本帖最后由 conglin58 于 2010-6-29 17:26 编辑 ]
作者: Batcher 时间: 2010-6-29 20:34 标题: 回复 11楼 的帖子
批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |