Windows: Скрипт для массовой загрузки файлов на ftp-сервер
Появилась задача загружать на ftp-сервер файлы из конкретной папки, количество и имена файлов неизвестны. Реализовал нехитрым батником для массовой загрузки файлов на ftp-сервер.
Текст скрипта:
echo open server-adress >G:\ftpup\list.txt
echo user login pass >>G:\ftpup\list.txt
echo prompt >>G:\ftpup\list.txt
for /f "tokens=*" %%i in ('dir /b "G:\ftpup\*.rar"') do (@echo mput "G:\ftpup\%%i" >> G:\ftpup\list.txt)
echo disconnect>>G:\ftpup\list.txt
echo quit>>G:\ftpup\list.txt
ftp -n -s:G:\ftpup\list.txt
Пояснения:
Скрипт создает файл list.txt, в который записывает команды для штатного ftp-клиента windows. После чего запускает этот клиент с командами из файла.
server-adress - IP или имя ftp-сервера.
login pass - имя пользователя и пароль для доступа к серверу.
G:\ftpup\ - папка откуда брать файлы.
*.rar - маска для поиска файлов.
PS. При загрузке большого количества мелких файлов штатный ftp-клиент может терять пару байт у файла. Думаю, что связано это с отсутствием адекватной проверки после передачи. Победить штатными средствами не смог, пришлось прикручивать lftp. Более детально написано здесь: Загрузка файлов и папок на ftp-сервер c помощью LFTP.