Всем доброго времени суток. Есть следующий батник
cls
SETLOCAL EnableDelayedExpansion
echo off
FOR /F "tokens=1,2 delims=," %%i in (dlist.txt) do (
set dfile="docs/%%~i"
set dlink=%%~j
echo !dfile! - !dlink! - start
:dl
"путь_к_курлу\curl.exe" -# --tlsv1 -4 -L0 -o !dfile! !dlink!
IF NOT EXIST !dfile! (
echo !dfile! - retry
goto dl
)
)
Файл dlist.txt содержит строки вида
"имя файла","урл файла"
Изначально goto цикла не было, но сервер, с которого идёт скачивание, часто и непредсказуемо выбрасывал ошибки ssl соединения.
Однако после добавления goto стала обрабатываться только первая строка файла, после чего батник завершается без сообщений об ошибках (без goto цикла обрабатывались все строки, но большая часть файлов просто не скачивалась)
+ вывод консоли: |
D:\tmp\_sb>SETLOCAL EnableDelayedExpansion
D:\tmp\_sb>echo off "имя_файла" - урл - start
curl: (35) Unknown SSL protocol error in connection to сайт:443 "имя_файла" - retry
curl: (35) Unknown SSL protocol error in connection to сайт:443 "имя_файла" - retry
<ещё куча повторов...>
curl: (35) Unknown SSL protocol error in connection to сайт:443 "имя_файла" - retry ######################################################################## 100.0% D:\tmp\_sb> |
Вопрос - почему здесь происходит выход из FOR-а после обработки одной строки?