我正在尝试使用winrar cli阅读许多.rar文件的评论部分并将其传输到文本文件。
WinRAR -z
命令打开评论部分,但无法通过管道传输。
谢天谢地。
答案 0 :(得分:1)
WinRAR 的程序文件文件夹包含控制台版本Rar.exe
和文本文件Rar.txt
,它是控制台版本的手册。因此,在使用Rar.exe
时,建议双击文本文件Rar.txt
以在Windows记事本等相关应用程序中打开它,并从上到下阅读。
Rar.txt
包含RAR命令cw
的解释:
cw Write archive comment to specified file.
Format of output file depends on -sc switch.
If output file name is not specified, comment data will be sent to stdout.
Examples:
1) rar cw arc comment.txt
2) rar cw -scuc arc unicode.txt
3) rar cw arc
此外,在底部附近解释了开关-y
,如果文件将评论写入已存在,这对于此任务也很有用,这会导致Rar.exe
提示不使用如果文件应该被覆盖,请切换-y
。
最后,使用安静模式的开关-idq
在这里也很有用,可以防止在将RAR存档文件中的所有注释写入文本文件时输出到控制台。
因此可以通过在命令提示符窗口中运行来完成任务:
for %I in ("C:\Path to RAR files\*.rar") do @"%ProgramFiles%\WinRAR\rar.exe" cw -idq "%I" "C:\Output Path\%~nI.txt"
但是如何将所有评论直接收录到一个文本文件中?
这是一个更有趣的问题,因为实际上需要一个批处理文件。
@echo off
set "FirstFile=Yes"
set "CommentFile=C:\Output Path\AllComments.txt"
del "%CommentFile%" 2>nul
for %%I in ("C:\Path to RAR files\*.rar") do (
if not defined FirstFile (
>>"%CommentFile%" echo ================================================================================
>>"%CommentFile%" echo/
) else set "FirstFile="
>>"%CommentFile%" echo %%I
>>"%CommentFile%" echo/
"%ProgramFiles%\WinRAR\Rar.exe" cw -idc -y "%%I" CON: >>"%CommentFile%"
)
set "CommentFile="
set "FirstFile="
CON:
被指定为注释文件,用于将注释写入控制台,而不是通过附加文本重定向到注释文件旁边的屏幕。
切换-idc
用于防止仅输出版权声明,但会使用英文Rar.exe
输出行Comment is not present
,上面有一个空行,下面没有空行已处理的* .rar文件不包含注释。当然也可以使用-idq
在没有注释的* .rar文件的所有注释文本文件中写入任何内容。
注意:对于另外使用哪个开关-sc
或非ASCII字符的文件名/路径的非ASCII注释,必须调整一个文本文件解决方案中的所有注释或根本不可能,具体取决于执行批处理文件本身的环境,以生成包含所有正确编码字符的文本文件。