Как выполнить загрузку файлов с ftp/http из командной строки
Проблема:
Необходимо скачать несколько файлов (или несколько папок) с ftp либо с http источника. Причем, сделать это необходимо из командного файла Windows.
Решение:
Воспользуемся бесплатной утилитой wget.
Утилиту и документацию можно скачать здесь
Пример командного файла:
Код: Выделить всё
DEL /F /S /Q P C:\Exchange\Folder\*
wget.exe --retry-connrefused -t3 --user=DOMAIN\User --password=Password -r -l2 -k "ftp://manaeff.ru/Folder/" -nd -N -P "C:\Exchange\Folder"
Здесь:
-
--retry-connrefused - при обрыве соединения пытаемся сединиться вновь
-
-t3 - делаем 3 попытки соединения
-
--user=DOMAIN\User - имя пользователя (если нужно указать домен, то указываем и его)
-
--password=Password - пароль пользователя
-
-r - рекурсивная обработка каталогов ( то есть качаем с подкаталогами)
-
-l2 - рекурсивно углубляться в структуру подкаталогов на 2 уровня
-
-k - переделывать ссылки в скачанных html-файлах на локальные пути
-
"ftp://manaeff.ru/Folder/" - адрес и путь на ftp или http ресурсе до папки, с которой нужно начинать рекурсивную обработку (то есть то место, откуда нужно скачать файлы/папки)
-
-nd - не создавать папки пути (в данном случае - копировать прямо в папку C:\Exchange\Folder, а не воссоздавать путь C:\Exchange\Folder\Manaeff.ru\Folder)
-
-N - копировать только новые и измененные файлы
-
P "C:\Exchange\Folder" - копировать содержимое в локальную папку "C:\Exchange\Folder"
Более подробно о параметрах и особенностях утилиты WGet читаем в документации либо пользуемся встроенной справкой утилиты:
Код: Выделить всё
wget -h