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

问题描述 投票:0回答:3

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

我已经在命令行中尝试了本机 7zip 选项,但还没有任何效果,在 7zip 常见问题解答中也没有得到任何运气。最后尝试了批量“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

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

batch-file 7zip
3个回答
16
投票

7zip 中有一个内置命令用于此操作。

此命令行会将当前目录 (

e *.zip
) 中的所有 zip 文件解压到具有存档名称的目录 (
-o*
)。

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

1
投票

事实上,我做了一个由注册表调用的批处理:

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*

就像一个魅力。

非常感谢您的帮助!


0
投票

尝试一下:

forfiles /m *.zip /c "cmd /c "C:\tool\7-Zip\7z.exe" e @path -o@fname"
© www.soinside.com 2019 - 2024. All rights reserved.