如何将文件夹中的所有RAR文件解压缩到特定的目标文件夹?

时间:2015-10-07 22:02:49

标签: batch-file unrar

我有一个文件批处理将文件夹中的所有RAR文件解压缩到子文件夹中。

C:\test\sub-folder\file.rar -> C:\test\sub-folder\fileunrar

但是当我运行它时,文件被解压缩到基本文件夹:

C:\test\sub-folder\file.rar -> C:\test\fileunrar

这是我目前正在使用的批处理文件:

@ECHO OFF
cd C:\test
SET PATH=C:;C:\Program Files\WinRAR;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;%PATH%
FOR /f "delims=" %%d IN ('DIR /B') DO unRaR x -y -r -o- *.rar
EXIT

为什么将RAR存档解压缩到基础文件夹?

1 个答案:

答案 0 :(得分:3)

WinRAR 的程序文件文件夹中有文本文件Rar.txt,它是控制台版Rar.exe的手册,其中包含{{{{}支持的所有命令和开关。 1}}当然可以创建,更新或修复RAR档案。

在命令提示符窗口中运行UnRAR.exe而不使用任何参数会导致显示所有支持的命令和开关,并附有简要说明。

UnRAR.exeUnRARRar支持在目录中解压缩多个* .rar文件,而无需带有 FOR 循环的批处理文件一个命令。

要解压缩多卷存档,只需在命令行上指定第一个RAR存档文件的文件名即可。 WinRARUnRARRar会自动检测到此文件是多卷存档的第一个文件,并自动处理所有卷。

当然,WinRARUnRARRar在解压缩包含多个单独存档的文件夹的所有* .rar文件时,不会多次处理每个* .rar文件一个或多个多卷档案。

对于使用单行解包多个独立* .rar存档,交换机WinRAR可能有助于避免将所有独立存档的内容合并到同一目录中。

要将目录-ad中的所有* .rar存档解压缩到目录C:\Temp,并将所有存档中的文件和文件夹合并到此目录,并使用以下命令自动覆盖所有现有文件:

C:\Temp\Extracted

提取"%ProgramFiles%\WinRAR\UnRAR.exe" x -c- -cfg- -inul -o+ -y "C:\Temp\*.rar" "C:\Temp\Extracted\" 中的所有* .rar文件,将每个独立归档文件解压缩到C:\Temp中具有归档文件名称的子目录中,可以通过以下方式实现:

C:\Temp\Extracted

开关"%ProgramFiles%\WinRAR\UnRAR.exe" x -ad -c- -cfg- -inul -o+ -y "C:\Temp\*.rar" "C:\Temp\Extracted\" 在输出文件夹中有所不同。

如果-ad已存在或尚未存在以解压缩档,则无关紧要。 C:\Temp\ExtractedUnRARRar在提取时始终创建整个目录树以输出文件夹(如果必要且当然可能)(写入权限,驱动器/共享存在且不写保护)。

让我们看一个让差异更明确的例子。

WinRAR中有2个RAR档案MyFirstArchive.rarAnotherArchive.rar,其中包含以下文件和文件夹。

<强> MyFirstArchive.rar

C:\Temp

<强> AnotherArchive.rar

 Attributes      Size    Date   Time   Name
----------- ---------  -------- -----  ----
    .......      6302  11-10-15 15:25  zzz.doc
    .......    940942  26-08-15 08:07  yyy.txt
    .......   1430688  06-10-14 05:49  Folder1\xxx.pdf
    ...D...         0  12-10-15 07:10  Folder1
----------- ---------  -------- -----  ----
              2377932                  4

第一个命令导致:

  • C:\温度\提取
    • Folder1中
      • index.txt
      • xxx.pdf
    • FOLDER2
      • index.txt
    • index.txt
    • yyy.txt
    • zzz.doc
Attributes Size Date Time Name ----------- --------- -------- ----- ---- ....... 28165 08-01-12 17:50 zzz.doc ....... 3743 29-10-14 07:18 Folder2\index.txt ....... 27141 29-10-14 07:18 Folder1\index.txt ....... 940942 26-08-15 08:07 index.txt ...D... 0 12-10-15 07:10 Folder1 ...D... 0 12-10-15 07:12 Folder2 ----------- --------- -------- ----- ---- 999991 6 中的

zzz.doc已在AnotherArchive.rar中覆盖zzz.doc

带开关MyFirstArchive.rar的第二个命令导致:

  • C:\温度\提取
    • MyFirstArchive
      • Folder1中
        • xxx.pdf
      • yyy.txt
      • zzz.doc
    • AnotherArchive
      • Folder1中
        • index.txt
      • FOLDER2
        • index.txt
      • index.txt
      • zzz.doc

将2个档案的文件夹和文件解压缩到具有档案文件名称的单独文件夹。