通过 7zip 提取多个目录的内容(无需创建子文件夹)

通过 7zip 提取多个目录的内容(无需创建子文件夹)

我有一个很大的zip文件目录,每个文件都包含一个文件。我想自动将所有 zip 文件解压到一个目录中。

7-zip 具有将多个 zip 文件解压到同一目录中的功能。但是,它会为每个原始 zip 文件创建一个子目录。以下是解压前后的效果:

前:

- before
  - a.zip
    - a.txt
  - b.zip
    - b.txt
  - c.zip
    - c.txt
  - d.zip
    - d.txt

后:

- after
  - a
    - a.txt
  - b
    - b.txt
  - c
    - c.txt
  - d
    - d.txt

但是,我想要的输出是这样的:

- after
  - a.txt
  - b.txt
  - c.txt
  - d.txt

我怎样才能做到这一点?

答案1

您可以在命令行中使用“e”开关执行此操作。

7za e archive.zip -o\\path\to\target

-o 开关是可选的,可让您指定解压的目标目录。请勿在 -o 和路径之间添加空格。如果不指定,则将使用当前目录。

请注意,您的档案中没有不同文件夹中同名的文件。

答案2

如果您在资源管理器中选择所有 zip 文件并单击鼠标右键,您应该会在菜单Extract Here下找到一个选项7-Zip。这应该可以满足您的要求。

答案3

您可以尝试使用批处理文件来完成此任务。例如:

::Path where zip files are stored
SET SOURCEPATH=C:\zips\before

::Target Path where extracted files will be stored
SET TARGETPATH=C:\zips\after

::path to 7-zip
SET Z=C:\Program Files\7-Zip\7z.exe

::Extract each file in source folder into target
FOR %%f in (%SOURCEPATH%\*.zip) do "%Z%" e %%f -o%TARGETPATH%

此批处理文件将把“Before”文件夹中所有以“zip”为扩展名的文件解压到“After”文件夹中。您必须修改源、目标和 7zip 路径。

相关内容