我有一个文件批处理将文件夹中的所有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存档解压缩到基础文件夹?
答案 0 :(得分:3)
WinRAR 的程序文件文件夹中有文本文件Rar.txt
,它是控制台版Rar.exe
的手册,其中包含{{{{}支持的所有命令和开关。 1}}当然可以创建,更新或修复RAR档案。
在命令提示符窗口中运行UnRAR.exe
而不使用任何参数会导致显示所有支持的命令和开关,并附有简要说明。
UnRAR.exe
,UnRAR
和Rar
支持在目录中解压缩多个* .rar文件,而无需带有 FOR 循环的批处理文件一个命令。
要解压缩多卷存档,只需在命令行上指定第一个RAR存档文件的文件名即可。 WinRAR
,UnRAR
和Rar
会自动检测到此文件是多卷存档的第一个文件,并自动处理所有卷。
当然,WinRAR
,UnRAR
和Rar
在解压缩包含多个单独存档的文件夹的所有* .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\Extracted
,UnRAR
和Rar
在提取时始终创建整个目录树以输出文件夹(如果必要且当然可能)(写入权限,驱动器/共享存在且不写保护)。
让我们看一个让差异更明确的例子。
WinRAR
中有2个RAR档案MyFirstArchive.rar
和AnotherArchive.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
第一个命令导致:
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
的第二个命令导致:
将2个档案的文件夹和文件解压缩到具有档案文件名称的单独文件夹。