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

Extract zip contents into directory with same name as zip file, retain directory structure

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

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

我可以使用

将所有相同的文件提取到当前目录中
"C:\Program Files (x86)-Zipz.exe" e  myZipFile.zip

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

 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{Directory} : set Output directory。如果该目录尚不存在,7z 将创建该目录。

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