将 zip 内容解压到与 zip 文件同名的目录中,保留目录结构

Har*_*iet 7 scripting 7zip batch-file

我想编写一个bat脚本来执行以下操作:

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

我可以通过使用将所有相同的文件提取到当前目录中

"C:\Program Files (x86)\7-Zip\7z.exe" e  myZipFile.zip
Run Code Online (Sandbox Code Playgroud)

小智 8

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

  • 我不确定这是否能达到他想要的效果。`-o` 选项需要一个名为的特定目录。使用“-o\*”要么会扩展到所有文件(可能会出错),要么会创建一个实际上名为“*”的目录(也不是他想要的)。 (2认同)

gei*_*aos 7

7z只需键入"C:\Path To\7-Zip\7z.exe"即可阅读-command的帮助,以获得所有可能参数的帮助。在这里,我们发现以下有趣的内容:

 e : Extract files from archive (without using directory names)
Run Code Online (Sandbox Code Playgroud)

x : eXtract files with full paths
Run Code Online (Sandbox Code Playgroud)

反复试验表明,后者无需付出更大努力即可满足您想要的行为:)

@BadmintonCat发表评论之后,这里添加了一个将创建一个文件夹以将所有内容压缩到其中的内容(用作批处理脚本,文件作为参数):

@echo off

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

7z x -o"%dirName%" "%filename%"
Run Code Online (Sandbox Code Playgroud)

来自帮助:-o{Directory} : set Output directory。如果目录不存在,7z 将创建该目录。