批量解压子目录下的所有zip压缩包;每个存档的内容提取到以存档命名的新目录中

Chr*_*son 7 batch-file 7-zip 7za

我有一个包含大量子文件夹的文件夹,在这些子文件夹中是压缩文件。

我想知道如何将这些文件解压缩到以 zip 文件命名的文件夹中,例如:

C:\Archives\Photos\A.zip
C:\Archives\Videos\B.zip
C:\Archives\Documents\C.zip
Run Code Online (Sandbox Code Playgroud)

会变成

C:\Archives\Photos\A\
C:\Archives\Videos\B\
C:\Archives\Documents\C\
Run Code Online (Sandbox Code Playgroud)

我目前可以执行此操作,但前提是我一次执行一个文件夹,我想知道是否有办法一次完成所有操作,我在想一个 .bat 文件。

Lot*_*ngs 2

@Echo off
For %%F in (Photos,Videos,Documents) Do (
    For /F "delims=" %%Z in ('Dir /B/S/A-D "C:\Archives\%%F\*.zip" 2^>Nul') Do (
        7z x "%%~fZ" -o"%%~dpnZ\" && Rem Del "%%~fZ"
    )
)
Run Code Online (Sandbox Code Playgroud)

如果您想在解压成功后丢弃该 zip 文件,请删除Remdel 前面的。

批处理使用变量 ~ 修饰符仅使用完整文件名的一部分