如何通过批处理使用WinRAR?

4
我需要帮助处理批处理文件,因为我在批处理WinRAR时遇到了困难,因为我之前没有使用过它。
这是我的文件夹目录树,包括批处理文件:enter image description here 每个RAR文件都有相同的目录文件夹名称(“vegies”文件夹)。
我想要能够从"Example/Program_Ex/vegie"中解压/复制每个.rar文件内部的所有文件夹/子文件夹,并将其放回到 "Example/Program_Ex/vegies" 中一个目录下 (不要忘记“vegies”文件夹已经存在于每个RAR中,我无法更改,因为这些文件夹会自动更新本身。)
因此,基本上通过批处理文件,我想要:
extract "Example/Program_Ex/vegie/random.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random2.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random3.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random4.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random5.rar" to "Example/Program_Ex/vegies"

我也在尝试不指定驱动器,主要是因为批处理文件将位于正确的文件夹中,而不是使用诸如“CD”或“PATH”之类的东西?

我已经查看了一些网上和这里的示例,但我仍然不确定最好的方法是什么。

我能找到的最接近的示例是这样的:

@echo off

set destinationRAR=destination_winrar_file
set source=source_folder_path

"C:\Program Files\WinRAR\WinRAR.exe" a -ep1 -esh -ibck -m0 -r -t %destinationRAR% %source%

有人可以帮忙提供一个关于如何实现我的问题的例子吗?

(以上内容来自http://fredy-invayne.blogspot.com.au/2013/05/example-winrar-batch-file.html


你想复制归档文件还是提取它们的内容?请注意,你示例中的 a WinRAR 命令是用于将文件添加到(新建或现有的)归档文件中。 - Andriy M
抱歉,@Andriy M,我已经编辑了我的问题,我想提取它们的内容,上面的底部示例是我能找到的最接近的示例,但不一定是我要找的。谢谢。 - Burgo855
7Zip 命令行非常适合这项工作。 - 09stephenb
7-Zip支持旧版本的Windows吗? - Burgo855
2个回答

2
@echo off
    for %%a in (
        "%~dp0Example\Program_Ex\vegie\*.rar"
    ) do unrar x "%%~fa" -w "%~dp0Example\Program_Ex" -o+

对于存储批处理文件的文件夹下指定路径中的每个文件,提取文件内容并指定目标文件夹,选择“必须覆盖现有文件”。


1
你可以通过一次WinRAR调用来提取所有归档文件:
"C:\Program Files\WinRAR\WinRAR.exe" x "%~dp0Program_Ex\vegie\random*.rar" "%~dp0Program_Ex\"

上述命令行中的最后一个参数指定了所有存档文件的目标文件夹。您可能需要添加-o+开关(必须紧跟在x之后),以指定所有文件都应该被覆盖:
"C:\Program Files\WinRAR\WinRAR.exe" x -o+ "%~dp0Program_Ex\vegie\random*.rar" "%~dp0Program_Ex\"

如果您省略它,压缩程序将询问您如何处理现有文件(如果有的话)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接