我在一个文件夹中有大约 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
我会接受您能提供的任何帮助,请提前致谢。
7zip 中有一个内置命令用于此操作。
此命令行会将当前目录 (
e *.zip
) 中的所有 zip 文件解压到具有存档名称的目录 (-o*
)。
C:\tool\7-Zip\7z.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\7-Zip\7z.exe e *.zip -o*
就像一个魅力。
非常感谢您的帮助!
尝试一下:
forfiles /m *.zip /c "cmd /c "C:\tool\7-Zip\7z.exe" e @path -o@fname"