使用 7-Zip 从命令行提取档案中的特定文件

使用 7-Zip 从命令行提取档案中的特定文件

例如,如果我有一个some.zip包含一个或多个文件的档案,如何使用7-Zip从 Windows 的命令行?

答案1

您只需在末尾添加文件名即可。

7z e [archive.zip] -o [outputdir] [fileFilter]

答案2

作为后续行动surfasb 的回答,在末尾添加 -r 标志以进行递归:

7z e [archive.zip] -o[outputdir] [fileFilter] -r

多个过滤器支持:

7z e [archive.zip] -o[outputdir] [fileFilter_1] [fileFilter_2] -r

例子:

多个过滤器命令行:

7z e archive.zip -o outputdir *.xml *.dll -r

PS:我使用 7za.exe 而不是 7z.exe。这是我在脚本中使用的实际命令:

7za.exe x archive.zip -o outputdir *.xml *.pdb *.exe *.ocx *.dll -r

答案3

如果你看看手册页对于 7z,您会发现以下命令可用于从 7z 存档中提取文件(尽管手册页中缺少路径的用法):

7z x <archive> <path to file>

例子:

7z x backup.7z *.html
7z x backup.7z folderwithin/myfile.html

或者您也可以使用e

命令行版本用户指南似乎有更多关于实际使用情况的信息。

答案4

我发现在 zsh 命令行上,使用 7-zip 16.06,我必须在通配符过滤器参数周围加上双引号。例如,没有找到要提取的 PDF 文件:

7z e "archive has pdf in subdirectory.zip" -r *.pdf

但引用通配符过滤器做过查找并提取 zip 存档子目录中的 PDF 文件,如下所示:

7z e "archive has pdf in subdirectory.zip" -r "*.pdf"

相关内容