Как загрузить файлы с FTP-сайта в одной командной строке без взаимодействия с пользователем (Windows)

Как загрузить файлы с FTP-сайта в одной командной строке без взаимодействия с пользователем (Windows)

Я знаю, что есть команда FTP, которую можно запустить из командной строки в Windows, и она загружает файл с сайта FTP. Пользователь + пароль указаны в "этой" однострочной команде cmd. Эти параметры + пароль passtrough должны быть в этой командной строке.

echo open 192.168.1.64 21> ftp.txt
echo anonymous>> ftp.txt
echo [email protected]>> ftp.txt
echo bin >> ftp.txt
echo get test.txt >> ftp.txt
echo bye >> ftp.txt

ftp -s:ftp.txt

решение1

Попробуй это:Пакетные файлы — Автоматические загрузки по FTP

WGET ftp://ftp.mydomain.com/path/file.ext  

для анонимных загрузок

или:

WGET ftp://user:[email protected]/path/file.ext  

когда требуется аутентификация.


Как указал @XavierStuvw в своих правках и комментариях, замена WGETна нижний регистр wgetбудет работать в Linux.

wget ftp://user:[email protected]/path/file.ext

решение2

Я нашел способ:

echo open 192.168.0.1 >> ftp &echo user admin w00t >> ftp &echo binary >> ftp &echo get file.zip >> ftp &echo bye >> ftp &ftp -n -v -s:ftp &del ftp

решение3

Обратите внимание, что вы можете запросить синтаксис команды в DOS, используя переключатель /?. Например:

C:\>ftp /?

Передача файлов на компьютер и с компьютера, на котором запущен FTP-сервер.
(иногда его называют демоном). Ftp можно использовать интерактивно.

FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:sendbuffer] [-r:recvbuf
fer] [-b:asyncbuffers] [-w:windowsize] [хост]

  -v Подавляет отображение ответов удаленного сервера.
  -n Подавляет автоматический вход в систему при первом подключении.
  -i Отключает интерактивные запросы при работе с несколькими файлами.
                  переводы.
  -d Включает отладку.
  -g Отключает подстановку имен файлов (см. команду GLOB).
  -s:имя_файла Указывает текстовый файл, содержащий команды FTP;
                  команды будут автоматически выполняться после запуска FTP.
  -a Использовать любой локальный интерфейс при привязке соединения данных.
  -Вход как анонимный.
  -x:send sockbuf Переопределяет размер SO_SNDBUF по умолчанию, равный 8192.
  -r:recv sockbuf Переопределяет размер SO_RCVBUF по умолчанию, равный 8192.
  -b:async count Переопределяет значение асинхронного счетчика по умолчанию, равное 3
  -w:windowsize Переопределяет размер буфера передачи по умолчанию, равный 65535.
  хост Указывает имя хоста или IP-адрес удаленного
                  хост для подключения.

Примечания:
  - команды mget и mput принимают y/n/q для да/нет/выход.
  - Используйте Control-C для отмены команд.

В вашем случае вам нужно будет использовать ключ -s, чтобы передать ему скрипт, включая ответы на вход в систему.

Например:

  1. Создайте файл скрипта (c:\scriptfile.txt) со следующим содержимым:

    open
    servername_or_ip
    username
    password
    get
    /fullpath/thefile.txt
    c:\fullpath\thefile.txt
    quit
    
  2. выполнить ftp с ключом -s и указать имя файла скрипта

    C:\>ftp -s:c:\scriptfile.txt
    

решение4

Попробуйте curl, это мощный инструмент, который готов к работе сразу после установки (win10).

curl --user ftpusername:ftpuserpass -o outputdirname\test.txt  ftp://host/test.txt

Связанный контент