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

时间:2019-09-12 12:27:21

标签: batch-file 7zip

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

我已经在命令行中尝试了本机7zip选项,但仍无济于事,在7zip FAQ中也没有遇到任何麻烦。最终分批尝试了“ forfiles”,这似乎可以提供更好的结果,但无法使其正常工作。

这是我最后尝试的方法:

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

但是无法获得任何结果,这是我通过4个zip示例获得的结果:

C:\Users\tracto\test>forfiles /m *.zip /c "C:\tool\7-Zip\7z.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

我会尽一切可能的帮助。

2 个答案:

答案 0 :(得分:3)

7zip中有一个内置命令。

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

 C:\tool\7-Zip\7z.exe e *.zip -o*

答案 1 :(得分:0)

实际上我做了一个被注册表调用的批处理:

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\7-Zip\7z.exe e *.zip -o*

像魅力一样工作。

非常感谢您的帮助!