使用 7zip 提取多个文件并为每个文件创建一个文件夹

extracting multiple files with 7zip & creating a folder for each

我在一个文件夹中有大约 300 个 zip 文件(但将来可能会得到其他类型的存档),我需要将每个文件解压缩到存档名称的子文件夹中。

我已经在命令行中尝试了本机 7zip 选项,但没有任何效果,在 7zip 常见问题解答中也没有任何运气。最终尝试了 "forfiles" 批处理,这似乎提供了更好的结果,但无法使其正常工作。

这是我尝试的最后一件事:

forfiles /m *.zip /c "C:\tool-Zipz.exe e -o@path @file"

但无法获得任何结果,这是我使用 4 zip 示例获得的结果:

C:\Users\tracto\test>forfiles /m *.zip /c "C:\tool-Zipz.exe e -o@path @file"

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Error:
Incorrect command line

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Error:
Incorrect command line

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Error:
Incorrect command line

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Error:
Incorrect command line

我会接受你能提供的任何帮助,提前谢谢。

7zip 中有一个内置命令。

此命令行会将当前目录 (e *.zip) 中的所有 zip 文件提取到具有存档名称的目录 (-o*)。

 C:\tool-Zipz.exe e *.zip -o*

事实上,我做了一个被注册表调用的批次:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\unziptofolders]
"icon"="%SystemRoot%\system32\shell32.dll,45"
@="Unzip All"

[HKEY_CLASSES_ROOT\Directory\shell\unziptofolders\command]
@="cmd /min /c \"C:\tool\7-Zip\7z-grpfolder.bat %1\""

在该批次中包含以下内容:

@echo off
cd %1
C:\tool-Zipz.exe e *.zip -o*

很有魅力。

非常感谢您的帮助!