需要一个批处理脚本,它将在单个大型压缩文件中提取压缩文件中的所有文件

时间:2014-10-17 23:31:31

标签: batch-file zip batch-processing 7zip

我有一个如下所示的目录:

giantzippedfile.zip
  0.zip
    file_0
  1.zip
    file_1
  ...

我想运行一个只留下file_i的脚本。

我希望使用这样的东西:

for /F %%I IN ('dir /b /s *.zip *.rar') DO (
    "C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I"
)

但这只是给了我所有的i.zip而不是我想要的file_i。而剧本似乎是幂等的;再次运行它似乎没有做任何事情。

1 个答案:

答案 0 :(得分:0)

(未经测试)尝试:

for /F %%I IN ('dir /b /s *.zip *.rar') DO (
    "C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I"
    rem change to the directory, extract zips, delete them and change back
    pushd "%%~dpI"
    for /F %%z IN ('dir /b /s *.zip *.rar') DO (
        "C:\Program Files\7-Zip\7z.exe" x -o"." "%%z"
        del "%%z"
    )
    popd
)