解压 ZIP 文件,然后解压所有子 zip 文件

解压 ZIP 文件,然后解压所有子 zip 文件

我运行的是 Windows 10,但我也需要它在 Windows 7 上运行。
我有file.zip一个包含xzip 文件的文件,每个文件也包含xzip 文件。我如何才能“不手动”提取所有这些文件?IE 用 bach 文件还是 python 脚本?

答案1

下面是我以前使用过的方法,用于完成你描述的相同类型的任务,我从我的一个“脚本包“。我使用了免费的7-Zip此项任务的申请成功率为 100%。

本质上这...

  • 使用 7-Zip (7za) 应用程序将一个位置的 zip 文件内容提取到另一个位置
  • 然后它复制将提取的 ZIP 文件复制到初始提取的文件中,并将其复制到工作目录
  • 然后它从源中删除 ZIP 文件,并从工作目录中提取其他 zip 文件并循环,直到完成

笔记:可能需要将 7za 可执行文件复制到/system32文件夹中,或者可能需要将其所在的路径设置到PATH环境变量中。


批处理脚本

您将需要根据您的环境和需求相应地设置源、目标和工作目录变量值,其余部分应该按预期工作。

@ECHO ON

SET sourcedir=C:\Test\Source
SET destdir=C:\Test\Dest
SET workdir=C:\Test\WorkTemp

:unzip
7za -Y e "%sourcedir%" -o"%destdir%" -r
DEL /Q /F "%workdir%\*zip
XCOPY /Y /F %destdir%\*.zip "%workdir%"
DEL /Q /F %destdir%\*.zip

DIR "%workdir%\*.zip" /A-D                         
IF ERRORLEVEL 1 GOTO :done

:unzip2
7za -Y e "%workdir%" -o"%destdir%" -r
DEL /Q /F "%workdir%\*.zip"
XCOPY /Y /F %destdir%\*.zip "%workdir%"
DEL /Q /F %destdir%\*.zip

DIR "%workdir%\*.zip" /A-D                         
IF ERRORLEVEL 1 GOTO :done
GOTO :unzip2

:done
GOTO :EOF

更多资源

相关内容