用于将文件解压缩到某个文件夹的批处理脚本

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

我有多个.zip文件,我想通过脚本解压缩。经过短暂的研究。我有这个脚本:

for /R "C:\root\folder" %%I in ("*.zip") do (
  "%ProgramFiles(x86)%\7-Zip\7z.exe" x -y -o"%%~dpI" "%%~fI" 
)

问题是,它只将文件解压缩到同一个文件夹中。我有一个指定的文件夹用于解压缩文件,无法获取脚本将文件移动到该文件夹​​中。任何人都知道我需要添加到这个脚本?

batch-file zip unzip
1个回答
0
投票

在cmd窗口中阅读7z的帮助时,您会注意到-o开关是输出目录选项。目前你告诉它是%%~dpI,它实际上是zip文件当前的驱动器和路径。所以你想要改变输出目录:

for /R "C:\root\folder" %%I in ("*.zip") do (
  "%ProgramFiles(x86)%\7-Zip\7z.exe" x -y -oc"C:\root\folder2" "%%~fI"
)

我目前没有安装7zip,但我几乎100%确定它内置了递归函数,如果是这样,你甚至不需要for循环,你可以尝试:

7z.exe x -y "C:\root\folder\*.zip" -oc:"C:\root\folder2" -r

如果它不起作用,我将从答案中删除此部分。

© www.soinside.com 2019 - 2024. All rights reserved.