使用 7-Zip 递归提取

new*_*pie 10 archiving recursive 7-zip

我有几个文件夹,每个文件夹中都有 ZIP 文件。我想运行一个命令行命令以递归方式遍历每个文件夹并将它找到的每个存档文件提取到位,然后移至下一个文件夹。这甚至可能吗?

Oll*_*lli 11

如果您使用的是 Linux,则可以使用

find -iname \*.zip -exec unzip {} \;
Run Code Online (Sandbox Code Playgroud)

(安装后unzip

在 Windows 中,您可以使用

FOR /F "usebackq" %a in (`DIR /s /b *.zip`) do 7z.exe e %a
Run Code Online (Sandbox Code Playgroud)

假设你7z.exe在你的 PATH 中。在要(递归)解压缩所有 zip 文件的文件夹中运行该命令。


小智 6

使用适用于 Windows 的开源Multi Unpacker工具。它需要您安装 WinRAR,但除此之外,它实际上非常通用......

多开箱机

  • 这对于OP所询问的内容非常有用,但是,以防万一其他人与我处于相同的情况,它不适用于除.zip之外的任何扩展名。 (2认同)

jes*_*ing 6

使用 7-Zip,您可以发出以下命令将所有文件解压缩到您当前的基本文件夹:

7z e -an -air!*.zip -r
Run Code Online (Sandbox Code Playgroud)

所以如果你有

.
+ \ folder
    + \ file.zip
Run Code Online (Sandbox Code Playgroud)

file.zip 的内容最终将.删除所有存档文件夹。

或者使用x选项来提取包括存档的子文件夹。

您也许可以-o选择将每个 zip 文件解压缩到它所在的子文件夹中,尽管我经常发现我需要将所有文件都放在一个位置。