如何使用与 zip 同名的 winrar 提取文件夹中的所有 zip 文件?

How to extract all zip files in a folder using winrar with the same name as the zip?

我需要迭代一个文件夹,对于每个 zip 文件,我需要用它的名称来解压它。也就是说,如果它 test.zip 那么它应该提取到测试文件夹。同样,它应该遍历我的文件夹及其子文件夹并提取内容。我写了下面的代码,但它没有用 zip 的名称提取。请指教

cd %CD%\Setups
for /r %%i in ("*.zip") do (
   echo "%%~fi"
    "C:\Program Files (x86)\WinRAR\WinRAR.exe" a -afzip "%%~dpi" "%%~fi"
    echo came after unzipping
    del /S /Q "%%~fi"
)
exit \b

Winrar.exe解压zip文件的语法是这样的:

[path\winrar.exe] x [path to zip file] [files to extract, . for all files] [path folder to extract to]

@echo off
set winrar=%ProgramFiles%\WinRAR\WinRAR.exe
CD /D %CD%\Setups
for /f "delims=" %%i in ('Dir /b *.zip') Do ("%Winrar%" x "%%~fi" "%%~dpni\")
pause

编辑于 28/06/2016 @ 13:35

如果你想要这个开关,你也可以添加 -ibck 到 运行 后台 WinRAR :

@echo off
set winrar=%ProgramFiles%\WinRAR\WinRAR.exe
CD /D %CD%\Setups
for /r %%i in ("*.zip") Do ("%Winrar%" x -ibck "%%~fi" "%%~dpni\")
pause