批处理 - 在时间间隔内解压缩文件

时间:2015-08-13 16:36:00

标签: batch-file intervals

我有一个脚本可以将.rar文件解压缩到自己的文件夹中。现在我希望脚本解压缩.rar文件,如果失败,它应该尝试再次解压缩。在5次重试失败后,它应该将带有解压缩文件的文件夹移动到我称为错误的新位置文件夹。

到目前为止,我有这个:

:CopyDirectories for /D %%D in ("%BaseSourceFolder%\*") do ( set "TargetFolder=%BaseSourceFolder%\%%~nxD" "%ProgramFiles%\WinRAR\Rar.exe" x -cfg- -y "%%~fD\*.*" "!TargetFolder!" if not errorlevel 1 ( del "%%~fD\*.r??" move "%%~fD\*.*" "!TargetFolder!">nul 2>nul move "!TargetFolder!" "E:\New">nul 2>nul
) else ( for /l "!TargetFolder!" in (1, 1, 5) do ( goto CopyDirectories move "!TargetFolder!" "E:\Error">nul 2>nul ) ) )

2 个答案:

答案 0 :(得分:1)

将所有内容移动到1 ... 5循环中,如果使用gotoexit成功,则将其全部展开:

for /L %%z in (1,1,5) do (
    echo try #%%z

    ............. do something

    if not errorlevel 1 goto done
)
:done

答案 1 :(得分:1)

你不能像这样打破FOR / L命令。无论你的goto如何,它仍将执行所有迭代。