Board logo

标题: [文件操作] [已解决]批处理如何删除rar文件内2级目录下的指定文件? [打印本页]

作者: conglin58    时间: 2010-12-5 12:58     标题: [已解决]批处理如何删除rar文件内2级目录下的指定文件?

发现用 FOR /r %%v IN (*.rar) DO C:\rar.exe d %%v *.txt -r -ibck 这句批处理命令好像只能批量删除rar压缩包文件的根目录下的指定文件,但如果要删除的指定文件是在rar压缩包的二级目录或更深层文件目录的话,批处理应该怎么写?

[ 本帖最后由 conglin58 于 2010-12-6 13:31 编辑 ]
作者: hanyeguxing    时间: 2010-12-5 13:15

楼主是指rar文件里的目录?
测试没发现楼主说的这个问题
  1. "R:\Program Files\内存预装版WinRAR\RAR.exe" d "1.rar" *.bat
复制代码
RAR 3.80 beta 4    版权 (C) 1993-2008 Alexander Roshal    2 八月 2008
已注册给 寒夜孤星

正在从 1.rar 删除
正在删除 批处理\DEBUG模拟蓝屏.bat
正在删除 批处理\Visual Bat\3SOFT\RLPack\Source\makeit.bat
正在删除 批处理\Visual Bat\测试.bat
正在删除 批处理\正弦发生器.bat
完成



楼主的FOR /r %%v IN (*.rar) DO C:\rar.exe d %%v *.txt -r -ibck
不要在d命令下使用-r开关,因为这是无效的
-r      包含子文件夹,可以使用命令:
        a,u,f,m,x,e,t,p,v,l,c,cf 和 s.

[ 本帖最后由 hanyeguxing 于 2010-12-5 14:07 编辑 ]
作者: conglin58    时间: 2010-12-5 14:07

我做了一个测试用的rar文件,不好意思!刚才截图时发现好像做的复杂了点!呵呵!不过现实中的确碰到过很多次类似的情况!正好还有一个问题,这次也一起问,请看截图:

1。如何批量删除rar压缩包中包括子文件夹里的txt文件
2。如何把test文件夹内的文件提取到rar压缩包的文件根目录下,最终实现如下截图中的结果
作者: hanyeguxing    时间: 2010-12-5 14:17

1,运行:
  1. @echo off
  2. "R:\Program Files\内存预装版WinRAR\RAR.exe" d "RAR压缩包.rar" *.txt
复制代码
返回:
RAR 3.80 beta 4    版权 (C) 1993-2008 Alexander Roshal    2 八月 2008
已注册给 寒夜孤星

正在从 RAR压缩包.rar 删除
正在删除 RAR压缩包\RAR压缩包\111\222\111.txt
正在删除 RAR压缩包\RAR压缩包\111\222\222.txt
正在删除 RAR压缩包\RAR压缩包\333.txt
完成

用同样的方法测试RAR.exe和winRAR.exe,如果总不能递归子目录删除文件,建议换winrar版本
2,解压、删除、再压缩。。。

[ 本帖最后由 hanyeguxing 于 2010-12-5 14:24 编辑 ]
作者: conglin58    时间: 2010-12-6 08:36

老大!你现在写的这条命令是只针对单个的rar文件进行操作的吧?如果是批量的对几十个或几百个rar文件进行删除或添加或替换的话,麻烦您再帮忙告诉一下正确的命令是怎么写的?万分感谢了!

对了!突然想起来了!有时候在做批量删除操作的时候发现还有好多个zip格式的文件混在rar文件里,好像zip的文件不支持现在的批处理命令,有没有什么办法可以把这两种格式的文件一起运作吗?省的弄完了rar文件再去弄zip的,累死人了!

[ 本帖最后由 conglin58 于 2010-12-6 08:50 编辑 ]
作者: hanyeguxing    时间: 2010-12-6 12:03     标题: 回复 5楼 的帖子

1,楼主不是会使用“FOR /r "R:\TEMP" %%a IN (*.rar) DO 命令”这样的批处理命令吗?
2,rar.exe当然只能对rar文件操作,如果想把rar和zip一起操作,使用winrar.exe就可以了,winrar支持rar 和zip格式,rar.exe与winrar.exe的基本语法是一样的。
例如:查询目录R:\TEMP(包括子目录)下的所有rar和zip文件,删除里面的txt,并使WinRAR在后台运行
  1. for /r "R:\TEMP" %%a in (*.rar *.zip) do "R:\Program Files\内存预装版WinRAR\WinRAR.exe" d -ibck "%%a" *.txt
复制代码

[ 本帖最后由 hanyeguxing 于 2010-12-6 12:26 编辑 ]
作者: conglin58    时间: 2010-12-6 13:30

哦!原来只要在代码里再加个*.zip就行啦!哎!我怎么又没想到!我还以为要写很长的命令呢!谢了!
作者: yyhack    时间: 2011-3-22 14:52

for /r "E:\download" %%a in (*.rar *.zip) do "c:\Program Files\WinRAR\WinRAR.exe" d -ibck "%%a" Readme-说明.html



这段代码里面怎么样加一段代码,跳过已经删除了的Readme-说明.html  的zip文件




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2