批处理脚本以将文件解压缩到某个文件夹

时间:2018-11-16 07:16:41

标签: batch-file zip unzip

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

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

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

1 个答案:

答案 0 :(得分:0)

在cmd窗口中阅读7z的帮助时,您会注意到-o开关是输出目录选项。当前,您告诉它是%%~dpI,实际上是当前zip文件的Drive和Path。因此,您想更改输出目录:

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

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