批处理 将一个文件夹下的所有压缩包解压,压缩包里面还包含压缩包,共2333层

C:尀Program Files (x86)尀WinRAR尀WinRAR.exe
2025-03-06 11:59:44
推荐回答(1个)
回答1:

@echo off
set PATH=%PATH%;%ProgramFiles(x86)%\WinRAR;
:loop
set "est="
for /r %%a in (*.rar *.zip) do (
    if /i "%%~xa"==".rar" (
        set est=.
        WinRAR.exe x -ad -y "%%~sa" * "%%~sdpa"
        del "%%~a"
    ) else (
        if /i "%%~xa"==".zip" (
            set est=.
            WinRAR.exe x -ad -y "%%~sa" * "%%~sdpa"
            del "%%~a"
        )
    )
)
if defined est goto loop

放到rar、zip压缩包文件一起后运行。


注意:解压后会删除原始压缩包文件,如果有必要,请先自行备份压缩包到其它目录!