7z 的命令行从存档内的特定文件夹中提取特定文件
Command line for 7z to extract specific files from specific folders inside an archive
我正在编写一个 Python 脚本,我需要在其中调用 7z 来提取保存在存档目录中的一些文件,而不是提取完整的存档。存档包含多个目录,我需要从特定目录中提取一些文件。
假设,"abc.7z" 是一个包含多个目录的存档,即 "temp"、"windows"、"system"、"data"。我想从目录 "system" 中提取一些 .exe 文件,只是因为这些 .exe 文件也可能存在于其他目录中,但我只对 "system".
中的文件感兴趣
我只需要 7z 命令;我会弄清楚如何从脚本中调用 7z。感谢您的帮助。
您可以在命令行末尾指定一个 file/folder 过滤器。查看 this 以获取有关 7zip 命令行命令和选项的更多详细信息。
7z.exe x [archive.7z] -o[output_dir] [filter]
例如7z.exe x abc.7z -aoa -oC:\Temp system
您还可以从系统文件夹中指定特定类型的文件。例如system\*.exe
将提取 system
目录中的所有 .exe
文件。
-aoa
选项用于覆盖模式。
要从 Python 调用它,您可以使用 subprocess
模块。类似于:
import subprocess
cmd = []
cmd.append(r'C:\Program Files-Zipz.exe')
cmd.append('x')
cmd.append(archive)
cmd.append('-aoa')
cmd.append('-o{}'.format(dst_part))
cmd.append(file_folder_filter)
subprocess.call(cmd)
从 7z zip 中提取特定目录的步骤:
特定目录:rootdir/firstson/second
Zip 文件:test.7z
要使用的命令:
7z x test.7z rootdir/firstson/second
我正在编写一个 Python 脚本,我需要在其中调用 7z 来提取保存在存档目录中的一些文件,而不是提取完整的存档。存档包含多个目录,我需要从特定目录中提取一些文件。
假设,"abc.7z" 是一个包含多个目录的存档,即 "temp"、"windows"、"system"、"data"。我想从目录 "system" 中提取一些 .exe 文件,只是因为这些 .exe 文件也可能存在于其他目录中,但我只对 "system".
中的文件感兴趣我只需要 7z 命令;我会弄清楚如何从脚本中调用 7z。感谢您的帮助。
您可以在命令行末尾指定一个 file/folder 过滤器。查看 this 以获取有关 7zip 命令行命令和选项的更多详细信息。
7z.exe x [archive.7z] -o[output_dir] [filter]
例如7z.exe x abc.7z -aoa -oC:\Temp system
您还可以从系统文件夹中指定特定类型的文件。例如system\*.exe
将提取 system
目录中的所有 .exe
文件。
-aoa
选项用于覆盖模式。
要从 Python 调用它,您可以使用 subprocess
模块。类似于:
import subprocess
cmd = []
cmd.append(r'C:\Program Files-Zipz.exe')
cmd.append('x')
cmd.append(archive)
cmd.append('-aoa')
cmd.append('-o{}'.format(dst_part))
cmd.append(file_folder_filter)
subprocess.call(cmd)
从 7z zip 中提取特定目录的步骤:
特定目录:rootdir/firstson/second
Zip 文件:test.7z
要使用的命令:
7z x test.7z rootdir/firstson/second