标题类型说明了一切。我不知道该怎么做,另一篇文章在 Unzip all files in a folder using 7zip in CMD line
对我的解释非常一致。有人可以用一种简单的方法帮助我解压缩特定文件夹中的所有.zip文件吗?
答案 0 :(得分:33)
这会将当前文件夹中的所有zip文件解压缩到同一个文件夹中,假设您已将7zip安装到C:\Program Files\7-Zip
位置。
如果您已将7zip文件夹添加到路径中,则只需输入7z而不是完整路径
"C:\Program Files\7-Zip\7z.exe" e *.zip
答案 1 :(得分:3)
只需添加Gabor's answer即可。
我的默认安装文件夹是C:\Program Files (x86)\7-Zip
,所以我将从那里开始。
这是下载7zip的链接。
我想将目录中的每个zip文件解压缩到多个文件夹中。但是,上一个答案中的e
会导出目录中的所有内容。
这是"正常"解压缩为每个zip文件创建一个文件夹解压缩:
"C:\Program Files (x86)\7-Zip\7z.exe" x *.zip
要详细了解使用7z.exe可以执行的操作,请使用--help
:
"C:\Program Files (x86)\7-Zip\7z.exe" --help
这是它的输出:
Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
[<@listfiles...>]
<Commands>
a: Add files to archive
b: Benchmark
d: Delete files from archive
e: Extract files from archive (without using directory names)
l: List contents of archive
t: Test integrity of archive
u: Update files to archive
x: eXtract files with full paths
<Switches>
-ai[r[-|0]]{@listfile|!wildcard}: Include archives
-ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
-bd: Disable percentage indicator
-i[r[-|0]]{@listfile|!wildcard}: Include filenames
-m{Parameters}: set compression Method
-o{Directory}: set Output directory
-p{Password}: set Password
-r[-|0]: Recurse subdirectories
-scs{UTF-8 | WIN | DOS}: set charset for list files
-sfx[{name}]: Create SFX archive
-si[{name}]: read data from stdin
-slt: show technical information for l (List) command
-so: write data to stdout
-ssc[-]: set sensitive case mode
-ssw: compress shared files
-t{Type}: Set type of archive
-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
-v{Size}[b|k|m|g]: Create volumes
-w[{path}]: assign Work directory. Empty path means a temporary directory
-x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
-y: assume Yes on all queries
答案 2 :(得分:1)
您可以使用x代替e,这样可以提取具有zip文件名的文件夹中的每个zip文件。
"C:\Program Files\7-Zip\7z.exe" x *.zip
例如,您具有zip文件列表
file001.zip
file002.zip
fileXXX.zip
将解压缩到zip文件所在的文件夹中的/ file001,/ file002,/ fileXXX中。
答案 3 :(得分:0)
我不确定 OP 的意图,但我认为每个 .zip 文件都有一个子文件夹是个好主意,这样同名的文件就不会被覆盖。 (就像用鼠标右键拖放多个 .zip 文件并从本地菜单中选择 7-Zip > Extract Files ... 一样。)
为此,我在命令行中使用它:
for /f "usebackq delims=" %f in ( `dir /b /s *.zip` ) do 7z x "%f" -o"%~pf%~nf"
如果您的 PATH
环境变量中没有 7-Zip 的程序文件夹,则需要写入其完整路径。在 x86 Windows 或带有 x64 7-Zip 的 x64 Windows 上:
for /f "usebackq delims=" %f in ( `dir /b /s *.zip` ) do "C:\Program Files\7-Zip\7z.exe" x "%f" -o"%~pf%~nf"
在带有 x86 7-Zip 的 x64 Windows 上:
for /f "usebackq delims=" %f in ( `dir /b /s *.zip` ) do "C:\Program Files (x86)\7-Zip\7z.exe" x "%f" -o"%~pf%~nf"
注意:cmd将%~pf
替换为变量%f
的路径(实际上是目录名,末尾有反斜杠),%~nf
替换为文件名(不带文件扩展名) .
答案 4 :(得分:-2)
这里有很多过时的信息。 我使用7-zip v16.4。 这是您需要做的: