将zip文件的内容提取到与zip文件同名的目录中,并保留目录结构。

12

我想编写一个批处理脚本,以执行以下操作:

使用7 Zip从现有的zip文件中提取文件,提取到与原始zip文件同名(除了.zip扩展名)的文件夹中,并保留包含在zip文件中的文件和目录结构。

我可以使用以下方式将所有相同的文件提取到当前目录中:

"C:\Program Files (x86)\7-Zip\7z.exe" e  myZipFile.zip

1
@Harriet 在使用命令行中的7-Zip时,建议打开7-Zip的帮助文件——位于7-Zip程序文件夹中的文件7-zip.chm,并在帮助选项卡__目录__下阅读列出的命令行版本页面。命令ex以及其他所有命令和开关都在帮助文件中有详细解释。你只需要阅读帮助文件即可。 - Mofi
2个回答

8

只需使用以下命令:7z x *.zip -o\*


2
我不确定那会不会做他想要的事情。-o选项需要一个特定的目录名称。使用-o\*将扩展到所有文件(可能会出错),或者它将创建一个名为*的目录(也不是他想要的)。 - seanahern
1
用实际的压缩文件名替换 *.zip,它就能正常运行了。7z e yourfile.zip -o\* - blisstdev
1
找到当前目录下所有以“.zip”为扩展名的文件,并执行“7z x '{}' -o* ;”命令来解压缩。 - Martian2020

7

仅需键入"C:\Path To\7-Zip\7z.exe",读取7z-command的帮助文档,即可获得所有可能的参数。以下是一些有趣的参数:

 e : Extract files from archive (without using directory names)

并且

x : eXtract files with full paths

尝试和错误表明后者更符合您所需的行为,而不需要更大的努力 :)
在此@BadmintonCat的评论之后,以下是创建一个文件夹以将所有内容压缩到其中的附加内容(使用批处理脚本并将文件用作参数):
@echo off

SET "filename=%~1"
SET dirName=%filename:~0,-4%

7z x -o"%dirName%" "%filename%"

来自帮助文档:-o{目录}:设置输出目录。如果目录不存在,7z会创建该目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接