Можно ли загружать каталоги по FTP из командной строки Windows?

Как можно получить каталог со всеми его подкаталогами и файлами с использованием команды FTP в командной строке Windows, и можно ли написать скрипт для выполнения этой операции в автоматическом режиме, вместо ручной загрузки через FileZilla?
  • 3 апреля 2024 г. 13:49
Ответы на вопрос 5
Да, можно загружать каталоги по FTP из командной строки Windows. Для этого можно использовать утилиту ftp, встроенную в операционную систему.

Чтобы загрузить каталог со всеми его подкаталогами и файлами с использованием команды FTP в командной строке Windows, выполните следующие шаги:

1. Откройте командную строку Windows, нажав Win + R и введя cmd.
2. В командной строке введите команду ftp ваш_хост, где ваш_хост - это адрес FTP-сервера, к которому вы хотите подключиться.
3. Введите имя пользователя и пароль для подключения к FTP-серверу.
4. Перейдите в нужный каталог на FTP-сервере с помощью команды cd путь_к_каталогу.
5. Используйте команду mput * для загрузки всех файлов и подкаталогов из текущего локального каталога на FTP-сервер.

Чтобы автоматизировать этот процесс, можно написать скрипт на языке командного файла Windows (bat). Ниже приведен пример скрипта, который загружает все файлы и подкаталоги из указанного локального каталога на FTP-сервер:

```
@echo off
set HOST=your_ftp_host
set USER=your_ftp_username
set PASS=your_ftp_password
set LOCAL_DIR=C:\path\to\local\directory
set REMOTE_DIR=/path/to/remote/directory

echo open %HOST%> ftpcmd.dat
echo %USER%>> ftpcmd.dat
echo %PASS%>> ftpcmd.dat
echo cd %REMOTE_DIR%>> ftpcmd.dat
echo lcd %LOCAL_DIR%>> ftpcmd.dat
echo mput *>> ftpcmd.dat
echo bye>> ftpcmd.dat

ftp -s:ftpcmd.dat
del ftpcmd.dat
```

Замените your_ftp_host, your_ftp_username, your_ftp_password, C:\path\to\local\directory и /path/to/remote/directory на соответствующие значения.

Сохраните этот скрипт как upload.bat и запустите его из командной строки. В результате все файлы и подкаталоги из указанного локального каталога будут загружены на FTP-сервер.
Команда ftp поддерживает скрипты, которые можно передать команде через опцию -s. 
Скрипт просто содержит список стандартных команд ftp, которые нужно выполнить.

Можно, например, одним скриптом ftp получить список файлов в каталоге.
Затем этот список уже батником разобрать, вытащив из него отдельные имена файлов и сформировать второй скрипт по загрузке этих файлов.
Все это думаю можно упаковать в один батник.

Начать стоит с запуска в консоли ftp и сделать то что вы хотите руками. Заодно освоите команды ftp и разберетесь, что писать в ftp-скрипты.
> ftp /?
...
  -s:имя_файла    Задание текстового файла, содержащего команды FTP, которые
                  будут выполняться автоматически при запуске FTP.
можно. примеров в интернете полно. 

или поставьте winscp, у них есть целый набор консольных тулза для этого.
Конечно, если у ftp есть доступ на чтение данного каталога.
Похожие вопросы