【问题标题】:How to use WinRAR through Batch?如何通过 Batch 使用 WinRAR?
【发布时间】:2025-12-29 13:30:11
【问题描述】:

我需要一些关于批处理文件的帮助,因为我对批处理中的 WinRAR 感到困惑,因为我以前没有做过/使用过它。

这是我的文件夹的树,包括批处理文件:

  • 每个 RAR 文件都有相同的目录文件夹名称(“vegies”文件夹)。

我希望能够将每个 .rar 中的所有文件夹/子文件夹从 "Example/Program_Ex/vegie" 提取/复制回一个目录到 "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,我已经编辑了我的问题,我想提取它们的内容,上面的底部示例是我能找到的最接近的示例,不一定是我想要的。干杯。
  • 7Zip 命令行非常适合这项工作。
  • 7-Zip 支持旧版本的 windows 吗?

标签: windows batch-file command-line cmd winrar


【解决方案1】:
@echo off
    for %%a in (
        "%~dp0Example\Program_Ex\vegie\*.rar"
    ) do unrar x "%%~fa" -w "%~dp0Example\Program_Ex" -o+

对于存储批处理文件的文件夹下的指示路径中的每个文件,提取指示目标文件夹的文件内容并选择existing files must be overwritten

【讨论】:

    【解决方案2】:

    您可以通过一次 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\"
    

    如果您省略它,存档器会询问您如何处理现有文件(如果有)。

    【讨论】:

      最近更新 更多