sunwy 发表于 2011-1-25 17:20:08

对winrar文件批量添加注释和文件[跳过加密文件]

为上千上万个rar压缩文件添加注释和文件,这种需求是在这样的情况下产生的,
为了给我们的论坛的rar附件加上http://bbs.sunwy.org这个注释文件 ,
在google上面搜索了好久,总结如下经验。

   在这里,我们用到了winrar的命令行工具 rar.exe ,在winrar的安装目录下可以
找到。

   其中,添加注释很简单了,一个命令即可高定
   而要给数万个rar文件添加一个文件进去,就不是一句话能做完的,我们知道要往
一个rar文件里面添加文件的话,可以用这样的命令完成
   rar.exe a c:\a.rar c:\sunwy.org.txt
   这样就把 sunwy.org.txt这个文件添加到 a.rar 这个压缩文件当中去了。
   刚开始的时候,我试过 rar.exe a :\www\DiscuzX15\data\attachment\forum\*.rar c:\sunwy.org.txt 这个命令,结果不行。

   最后,想到了批处理,批处理不是一个接一个的命令执行吗,
   于是,写了个很简单的批处理,轻松搞定

[*] 格式:FOR [参数] %%变量名 IN (相关文件或命令)   DO 执行的命令   
[*]  作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,达到我们想要的结果。   
[*]  注意:在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable,而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.   
[*]  关于:for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f   
[*]  下面分别解释一下   
[*]
[*]  ===   
[*]  零:无参数时:   
[*]  ---   
[*]  FOR %variable IN (set) DO command    
[*]  %variable指定一个单一字母可替换的参数。   
[*]  (set)      指定一个或一组文件。可以使用通配符。   
[*]  command    指定对每个文件执行的命令。   
[*]  command-parameters   
[*]  为特定命令指定参数或命令行开关。   
[*]
[*]  TTT示例:   
[*]  for %%i in (t*.*) do echo %%i --显示当前目录下与t*.*相匹配的文件(只显示文件名,不显示路径)   
[*]  for %%i in (d:\mydocuments\*.doc) do @echo %%i --显示d:\mydocuments\目录下与*.doc相匹配的文件   

最后使用下面批处理成功
@echo off
for /r e:\www\DiscuzX15\data\attachment\forum\ %%i in (*.rar) do e:\Progra~1\WinRAR\Rar.exe c -p- -ze:\阳光网驿使用说明.txt %%i注:-p-是忽略有密码的压缩包
      -ze:\阳光网驿使用说明.txt是添加注册文件


job21 发表于 2011-1-26 21:30:43

支持下老大,以前也研究过这个,后来用的软件搞定的

sunwy 发表于 2011-3-6 23:57:09

@echo off
for /r D:\wwwroot\bbs.sunwy.org\DiscuzX15\data\attachment\forum\201102\ %%i in (*.rar) do e:\Progra~1\WinRAR\Rar.exe c -p- -ze:\阳光网驿使用说明.txt %%i根据dx1.5 版本,按年月分目录的备份格式

aa9822 发表于 2011-5-6 06:16:51

:lol:lol:lol不知道谁能帮我弄下加密文件.
页: [1]
查看完整版本: 对winrar文件批量添加注释和文件[跳过加密文件]