标题: [文件操作] [已解决]批处理如何批量修改RAR压缩包注释中的指定字符? [打印本页]
作者: boyjackson 时间: 2010-4-15 14:46 标题: [已解决]批处理如何批量修改RAR压缩包注释中的指定字符?
哪位好心的大哥可以帮帮我啊,大家看我上传的图片,应该明白我的意思了。谁能帮我写批量执行文件啊?先谢谢各位达人了!
---------------已有参考1------------------------------
winrar下面有个rar.exe,可以在命令行下运行
它可以在命令行下把注释导出文件或者添加注释
有了这个可以考虑自己写程序替换内容
------------------------------------------------------
---------------已有参考2------------------------------- @echo off
- set "rar=C:\Program Files\WinRAR\rar.exe"
- for %%a in ("C:\test\*.rar") do (
- "%rar%" vt "%%a" >"%temp%\%%~na.txt"
- for /f "delims=" %%h in ('findstr "注释:" "%temp%\%%~na.txt"') do (
- set "comment=%%h"
- )
- set "comment=%comment:~4%"
- set "comment=%comment:天空=华军%"
- echo %comment% | "%rar%" c "%%a"
- )
复制代码
------------------------------------------------------
参考2是一好心的大哥帮我写的,可是我还是没能解决问题,在我执行他提供的代码后,压缩包里的注释变成了“ECHO 处于打开状态。”我现在找不到他了!
作者: boyjackson 时间: 2010-4-15 14:48
- @echo off
- echo 正在处理请稍候。。。
- for /f "delims=" %%i in ('dir /a-d /b *.rar') do (
- rar cw "%%i" t1.txt>nul
- for /f "delims=" %%k in (t3.txt) do echo %%k>>t2.txt
- for /f "skip=4 delims=" %%j in (t1.txt) do echo %%j>>t2.txt
- rar c -zt2.txt "%%i">nul
- del t1.txt
- del t2.txt
- )
- echo.
- echo 处理完毕按任意键退出!
- pause>nul
复制代码
参考三,不过这个我不能指定我想替换的关键字!
作者: boyjackson 时间: 2010-4-15 14:56
顺便再问下
现在替换的是注释里的文字
如果想替换 网址 和 特殊字符
批处理一样可以搞定对吧?
作者: hanyeguxing 时间: 2010-4-15 15:20
- @echo off
- set "rar=C:\Program Files\WinRAR\rar.exe"
- for %%a in ("C:\test\*.rar") do (setlocal enabledelayedexpansion
- "%rar%" vt "%%a" >"%temp%\%%~na.txt"
- for /f "delims=" %%h in ('findstr "注释:" "%temp%\%%~na.txt"') do set "c=%%h"
- set "c=!c:~4!"
- set "c=!c:天空=华军!"
- echo !c! | "%rar%" c "%%a")
复制代码
1,如果涉及敏感字符,则使用sed、fr等修改%temp%\%%~na.txt文件,然后从文件添加注释,如rar.exe c -z注释文本.txt 压缩文件名
2,winrar.exe和rar.exe都可以执行相同的操作
3,rar.exe的命令行语法说明在winrar目录下的rar.txt中
4,winrar.exe的命令行语法说明在winrar目录下的WinRAR.chm或WinRAR.hlp中
[ 本帖最后由 hanyeguxing 于 2010-4-15 15:23 编辑 ]
作者: boyjackson 时间: 2010-4-15 16:04
-
- ╔— 提车软件 ゛——————————╗
- │ 让你的软件超越超越超越超 │
- │ 论坛支持:bbs.51ddd.com │
- ╚——————————— 51ddd.Com—╝
- windows 7 官方正式版景象文件
- windows 7 官方正式版景象文件
- windows 7 官方正式版景象文件
复制代码
感谢达人热心帮助,可以替换,但有个问题,替换之后只保留了第一行的信息,之后的都没了!
达人可以用我提供的注释测试,
我想替换的是“提车软件”和“51ddd.Com” 两部分内容!
[ 本帖最后由 boyjackson 于 2010-4-15 16:05 编辑 ]
作者: hanyeguxing 时间: 2010-4-15 18:04
未测试- @echo off&setlocal enabledelayedexpansion
- set "rar=C:\Program Files\WinRAR\rar.exe"
- for %%a in ("C:\test\*.rar") do (
- del /q *.h 2>nul
- "%rar%" cw "%%~na" hanye.h
- for /f "delims=" %%c in (hanye.h) do (set "c=%%c"
- set "c=!c:提车软件=寒夜孤星!"
- set "c=!c:51ddd.Com=bathome.net!"
- echo.!c!)>>guxing.h
- "%rar%" c -zguxing.h "%%~na")
复制代码
使用 rar 下的 cw 开关导出注释文件到hanye.h
使用 for 或其他命令修改hanye.h为guxing.h
使用 rar 下的 c -z注释 开关导入注释文件
[ 本帖最后由 hanyeguxing 于 2010-4-15 18:09 编辑 ]
作者: boyjackson 时间: 2010-4-15 21:09
达人解决了我一个大的问题,非常之感谢!
再次感谢!!!
请教下达人,有个别替换不了的,是不是RAR锁定了?还是别的什么原因?
如果是锁定了,有没有批量解锁的工具呢?
再次谢过!
在批处理过程中 有的提示完成 有的如下提示
作者: GNU 时间: 2010-4-15 21:17 标题: 回复 7楼 的帖子
你自己测试一下不就知道它是否锁定了?
作者: hanyeguxing 时间: 2010-4-15 21:21
原帖由 boyjackson 于 2010-4-15 21:09 发表
达人解决了我一个大的问题,非常之感谢!
再次感谢!!!
请教下达人,有个别替换不了的,是不是RAR锁定了?还是别的什么原因?
如果是锁定了,有没有批量解锁的工具呢?
再次谢过!
在批处理过程中 ...
把你实际运行的代码贴出来
作者: boyjackson 时间: 2010-4-15 21:44
实际运行代码已短信发于你!
作者: GNU 时间: 2010-4-15 21:45 标题: 回复 10楼 的帖子
直接贴出来给大家看看不行么?
作者: hanyeguxing 时间: 2010-4-15 22:12
WinRAR.exe和RAR.exe在处理rar文件时,可以忽略扩展名,例如:
rar c -zinfo.txt dummy
导入注释文本info.txt到dummy,处理时自动扩展dummy为dummy.rar
但在一种情况下例外,就是在.rar文件名中存在点(.),如dum.my,这个时候WinRAR.exe或RAR.exe将其扩展成dum.my,而不是dum.my.rar,所以WinRAR.exe和RAR.exe就找不到文件了
所以,以我在6楼的代码为例子,如果.rar的文件名中可能有点(.),则需要改成:- @echo off&setlocal enabledelayedexpansion
- set "rar=C:\Program Files\WinRAR\rar.exe"
- for %%a in ("C:\test\*.rar") do (
- del /q *.h 2>nul
- "%rar%" cw "%%a" hanye.h
- for /f "delims=" %%c in (hanye.h) do (set "c=%%c"
- set "c=!c:提车软件=寒夜孤星!"
- set "c=!c:51ddd.Com=bathome.net!"
- echo.!c!)>>guxing.h
- "%rar%" c -zguxing.h "%%a")
复制代码
即把%%~na改成%%a,以完整文件名操作
[ 本帖最后由 hanyeguxing 于 2010-4-15 22:17 编辑 ]
作者: boyjackson 时间: 2010-4-15 22:32
寒夜孤星 达人 您真是好人 没的说!
在您的帮助下,我已经完全可以搞定我要搞的东西了!
您的无私 热情 让我感动不已! 以后有什么要我帮忙的尽管开口!
本贴可以结贴了! 谢谢!
作者: hanyeguxing 时间: 2010-4-15 22:35
修改主题,在前面加上[已解决]
[ 本帖最后由 hanyeguxing 于 2010-4-16 17:47 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |