首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将文件夹中的所有RAR文件解压缩到特定的目标文件夹?

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

Stack Overflow用户
提问于 2015-10-07 22:02:49
回答 1查看 10K关注 0票数 1

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

代码语言:javascript
复制
C:\test\sub-folder\file.rar -> C:\test\sub-folder\fileunrar

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

代码语言:javascript
复制
C:\test\sub-folder\file.rar -> C:\test\fileunrar

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

代码语言:javascript
复制
@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档案被解压缩到基本文件夹?

EN

回答 1

Stack Overflow用户

发布于 2015-10-08 05:51:49

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

在命令提示符窗口中运行,只运行UnRAR.exe,没有任何参数,结果显示了所有受支持的命令和开关,并提供了简要说明。

UnRARRarWinRAR支持在一个目录中解压缩多个*.rar文件,而不需要使用单个命令使用FOR循环的批处理文件。

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

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

对于用一行解压缩多个独立的*.rar档案,开关-ad可能有助于避免将所有独立档案的内容合并到同一个目录中。

要将目录C:\Temp中的所有C:\Temp档案解压缩到目录C:\Temp\Extracted,并将所有档案和文件夹从所有档案合并到此目录,并自动覆盖所有现有文件,请使用以下命令:

代码语言:javascript
复制
"%ProgramFiles%\WinRAR\UnRAR.exe" x -c- -cfg- -inul -o+ -y "C:\Temp\*.rar" "C:\Temp\Extracted\"

可以通过以下方法提取C:\Temp中的所有C:\Temp文件,并将每个独立的归档文件提取到C:\Temp\Extracted中的一个带有归档文件名的子目录中:

代码语言:javascript
复制
"%ProgramFiles%\WinRAR\UnRAR.exe" x -ad -c- -cfg- -inul -o+ -y "C:\Temp\*.rar" "C:\Temp\Extracted\"

开关-ad使输出文件夹有所不同。

C:\Temp\Extracted是否已经存在或还不存在用于解压缩档案并不重要。UnRARRarWinRAR在提取时总是创建整个目录树,以便输出文件夹(如果有必要的话)当然可以(写入权限、驱动器/共享存在,而不是写保护的)。

让我们看一个例子,使差别更加清楚。

在包含以下文件和文件夹的MyFirstArchive.rarAnotherArchive.rar中有两个RAR档案:C:\Temp

MyFirstArchive.rar

代码语言:javascript
复制
 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

AnotherArchive.rar

代码语言:javascript
复制
 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

第一个命令的结果是:

  • C:\Temp\Extracted
    • Folder1
      • index.txt
      • xxx.pdf

代码语言:javascript
复制
- **Folder2** 
    - index.txt

代码语言:javascript
复制
- index.txt
- yyy.txt
- zzz.doc

zzz.doc in AnotherArchive.rarMyFirstArchive.rar中覆盖了zzz.doc

带有开关-ad的第二个命令的结果是:

  • C:\Temp\Extracted
    • MyFirstArchive
      • Folder1
        • xxx.pdf

代码语言:javascript
复制
    - yyy.txt
    - zzz.doc

代码语言:javascript
复制
- **AnotherArchive** 
    - **Folder1** 
        - index.txt

代码语言:javascript
复制
    - **Folder2** 
        - index.txt

代码语言:javascript
复制
    - index.txt
    - zzz.doc

将所述2档的文件夹和文件解压缩为具有存档文件名称的单独文件夹。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33003169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档