我有一个脚本可以将.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
)
)
)
答案 0 :(得分:1)
将所有内容移动到1 ... 5循环中,如果使用goto
或exit
成功,则将其全部展开:
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如何,它仍将执行所有迭代。