从命令行使用 7-Zip 从存档中提取某个文件

Kie*_*soo 48 windows command-line extract archiving 7-zip

例如,如果我有一个存档,some.zip其中包含一个或多个文件,我如何从 Windows 的命令行中使用7-Zip仅提取一个文件(我知道文件名)?

zio*_*nyx 44

作为surfasb's answer的后续,在末尾添加一个 -r 标志来递归:

7z e [archive.zip] -o[outputdir] [fileFilter] -r
Run Code Online (Sandbox Code Playgroud)

多个过滤器支持:

7z e [archive.zip] -o[outputdir] [fileFilter_1] [fileFilter_2] -r
Run Code Online (Sandbox Code Playgroud)

例子:

多个过滤器命令行:

7z e archive.zip -o outputdir *.xml *.dll -r
Run Code Online (Sandbox Code Playgroud)

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

7za.exe x archive.zip -o outputdir *.xml *.pdb *.exe *.ocx *.dll -r
Run Code Online (Sandbox Code Playgroud)

  • 如何添加多个文件过滤器,比如`.XML` 和`.zip`?对不起,如果我劫持了这个线程,我只是不想添加重复的问题。 (2认同)
  • 按空间分隔过滤器应该没问题。请参阅上面编辑后的答案。:) (2认同)

sur*_*asb 16

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

7z e [archive.zip] -o [outputdir] [fileFilter]
Run Code Online (Sandbox Code Playgroud)


Tod*_*dge 7

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

7z x <archive> <path to file>
Run Code Online (Sandbox Code Playgroud)

例子:

7z x backup.7z *.html
7z x backup.7z folderwithin/myfile.html
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用e.

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

  • 那是存档中的相对路径吗? (2认同)