Командный файл скачать с ftp. Доступ к FTP-серверу из командной строки Windows

Понадобилось мне ежечасно отправлять файлы отчетов на FTP сервер и также дублировать отправку этих файлов в почту нескольким адресатам. После недолгих изысканий остановился на встроенной утилите ftp.exe (C:\Windows\System32\ftp.exe) и старом добром blat. Итак начнем. Нам надо ежечасно загружать все XML файлы с директории %dir%\file_export (где %dir% путь к нашей папке) на сервер ftp.server.com.
Новая версия на Python

Настраиваем выгрузку файлов на FTP

Создаем файл команд для ftp.exe
Создаем текстовый документ (например ftpcomm.txt) в нем прописываем:
login
password
cd IN
binary

bye
где:
login - логин ftp сервера
pasword - пароль на ftp сервер
cd IN - переходим в нужную папку
binary - устанавливаем двоичный способ пересылки файлов. При этом файл при передаче не перекодируется и записывается в неизмененном виде. Это наиболее надежный способ передачи файлов.
mput C:\%dir%\file_export\*.xml - копируем один или несколько локальных файлов на удаленный компьютер с указанием директории
bye - конец FTP сессии и выход с FTP сервера
Создаем файл export.bat
В нем прописываем:

где:
C:\WINDOWS\system32\ftp.exe - Путь к утилите ftp.exe
-s:c:\%dir%\ftpcomm.tx t - задаем путь к текстовому файлу содержащим команды FTP, команды будет автоматически запускаться после старта FTP.
-i - отключение интерактивного режима при передаче нескольких файлов.
ftp.server.com - прописываем адрес нашего FTP cервера.
Проверяем работу запустив export.bat. Видим что файлы выгрузились на FTP сервер. Но тут возникает проблема, если нам надо выгружать файлы раз в час то как исключить повторное отправление файлов? Решение банальное:
В файл export.bat дописываем:
cd /d C:\%dir%\file_export\
del *.xml
где:
cd /d C:\%dir%\file_export\ - переходим в директорию в которой хранятся файлы XML.
del *.xml - удаляем все файлы XML.

Настраиваем отправку файлов на электронную почту

Для отправки файлов на почту используем утилиту blat (http://www.blat.net/). Скачиваем и Распаковываем в любой каталог, в нашем случае это c:\%dir\blat/
Установка blat. Вызываем командную строку. В командной строке переходим к нашей папке:
cd c:\%dir%\blat/
Запускаем установку blat (прописываем профиль blat в реестр, данные прописываются в реестр системы Windows в ветку: .
blat.exe -install smtp.yandex.ru Имя_ящика@yandex.ru 3 25 profile Имя_ящика@yandex.ru Ваш_Пароль
Где:
smtp.yandex.ru - имя почтового сервера, через который будет выполняться отправка электронных писем.
Имя_ящика@yandex.ru - имя отправителя, которое будет отображаться в поле.
3 - число попыток повторный отправки письма при сбое соединения с сервером.
25 - номер порта SMTP-сервера.
profile - имя профиля.
Имя_ящика@yandex.ru - имя пользователя, которое будет использоваться при подключении к SMTP-серверу.
Ваш_Пароль - пароль, используемый при подключении к SMTP-серверу, т.е. пароль к почтовому ящику.

Добавление отправки писем в export.bat

В файл export.bat после строчки
C:\WINDOWS\system32\ftp.exe -s:c:\%dir%\ftpcomm.txt -i ftp.server.com
Прописываем:

где:
-p profile – имя профиля blat (Указывали во время установки)
-charset windows-1251 (Выбираем кодировку Windows)
-to [email protected] – адрес получателя письма
-subject "File export " - Тема письма
-body "Auto export" – Тело письма
-attach c:\%dir%\file_export\*.xml – файлы или файл которые необходимо отправить
Если необходимо отправлять письма на несколько ящиков то прописываем данную строку несколько раз с указанием ящиков получателя:
blat.exe -p profile -charset windows-1251 -to [email protected] -subject "File export " -body "Auto export" -attach c:\%dir%\file_export\*.xml
blat.exe -p profile -charset windows-1251 -to [email protected] -subject "File export " -body "Auto export" -attach c:\%dir%\file_export\*.xml
blat.exe -p profile -charset windows-1251 -to [email protected] -subject "File export " -body "Auto export" -attach c:\%dir%\file_export\*.xml

Конечный файл export.bat

В итоге мы получаем файл export.bat в котором имеем строки:
C:\WINDOWS\system32\ftp.exe -s:c:\%dir%\ftpcomm.txt -i ftp.server.com
blat.exe -p profile -charset windows-1251 -to [email protected] -subject "File export " -body "Auto export" -attach c:\%dir%\file_export\*.xml
cd /d C:\%dir%\file_export\
del *.xml
В первой строке отправляем файлы на FTP сервер, во второй отправляем файлы электронной почтой, далее переходим в директорию где хранятся файлы и удаляем их.

Отправление файлов по расписанию

Напомню что нам необходимо отправлять файлы ежечасно, для этого создаем задачу в планировщике Windows. Где указываем что нам необходимо раз в час запускать export.bat.

Итог

В итоге мы имеем автоматизированную систему ежечасной отправки файлов на FTP сервер и электронную почту.

Протокол FTP является одним из распространенных сетевых протоколов, используемых пользователями сети Интернет. Подавляющее количество людей используют, для выкачивания чего-либо с FTP-серверов, различные клиенты FTP. Но не многие знают, что в Windows доступна возможность подключения к FTP-серверам из командной строки.

Из этого совета вы узнаете о том, как скачивать файлы с FTP-серверов при помощи простых DOS-команд .

Для того, чтобы скачать файл с FTP из командной строки Windows , выполним несколько простых действий:

  1. Откройте командную строку Windows, нажав на Пуск - Выполнить, набрав cmd и нажав на Enter.
  2. Выполните следующую команду: при помощи этой команды, мы подключимся к ftp-серверу компании Microsoft.
  3. Вводим имя пользователя anonymous. Сервер этой известной компании позволяет подключаться анонимным пользователям:
  4. В качестве пароля вводим e-mail (можно ввести несуществующий):
  5. Поздравляю с успешным входом!
  6. Для того, чтобы посмотреть, какие файлы и каталоги доступны на ftp-сервере, вводим команду dir:
  7. В результате - получаем список файлов и каталогов, расположенных на ftp-сервере:
  8. Для того, чтобы перейти в необходимый каталог, воспользуемся командой cd:
  9. Сообщение "250 CWD command successeful" скажет о том, что мы успешно перешли в нужный нам каталог:
  10. Для того, чтобы скачать нужный нам файл, введем команду get и имя загружаемого файла:
  11. После успешного получения файла, система оповестит нас:
  12. Для того, чтобы покинуть ftp-сервер и отключиться от него, выполните команду bye:

Возможно, многие скажут, что гораздо удобнее скачивать файлы при помощи многофункциональных менеджеров загрузки или ftp-клиентов.. Но при необходимости (или в качестве альтернативы), вы можете использовать простые DOS-команды , которые позволят вам скачать файлы с ftp без дополнительных затрат.

FTP - важная утилита TCP/IP, предназначенная для пересылки файлов между системами. Одно из главных достоинств FTP - совместимость со множеством различных удаленных хост-систем: файлы можно пересылать между удаленными системами Win-dows 2000, Windows NT и UNIX, и даже серверами IBM, например AS/400. Для запуска утилиты FTP, имеющей текстовый интерфейс и поставляемой вместе с Windows 2000 и NT, достаточно ввести ftp в командной строке.

Перечислим 10 наиболее полезных команд FTP.

10. Help (или?). Многие команды FTP можно вводить по-разному. Например, Help и вопросительный знак (?) выполняют одну и ту же функцию. Новичкам следует начинать именно с команды Help, после ввода которой система предоставляет пользователю полный список команд FTP. Чтобы получить краткое описание команды, следует ввести? и следом - имя команды:

Ftp>? open

9. Open. Сеанс FTP обычно начинается с команды Open, устанавливающей соединение с указанным FTP-сервером (на удаленном узле должна работать служба FTP). Получив команду Open, система запрашивает ID пользователя и пароль. Многие FTP-серверы позволяют регистрироваться с анонимным ID и пустым паролем. Чтобы установить связь с компьютером с именем teca2, нужно ввести

Ftp>open teca2

8. Quit (или Bye). Команда Quit завершает любой открытый сеанс и выходит из оболочки FTP:

Ftp>quit

Чтобы закрыть открытый сеанс, не завершая работы FTP, следует использовать команду Close.

7. Pwd. Команда Pwd отображает каталог на удаленной машине, с которым в данный момент установлена связь в рамках сеанса FTP:

6. Ls. Команда Ls показывает список файлов и подкаталогов, расположенных в текущем каталоге на удаленном компьютере. Ls позволяет обращаться к удаленным файлам:

5. Cd. Если нужного файла нет в текущем каталоге удаленной системы, то с помощью команды Cd можно перейти в другой каталог. Если установлено соединение с машиной UNIX, то удаленный каталог обычно указывают через слеш с наклоном вправо (в данном случае каталог /downloads):

Ftp>cd /downloads

4. Lcd. Команда Lcd изменяет текущий каталог на локальной машине. Любые полученные с удаленной машины файлы по умолчанию будут записываться в текущий каталог. Чтобы изменить текущий локальный каталог на C: emp, следует ввести команду

Ftp>lcd C: emp

3. Bin (или Binary). По умолчанию, FTP пересылает файлы в формате ASCII, что удобно для текстовых файлов. Но для пересылки исполняемых и.zip-файлов необходимо изменить тип пересылки на двоичный с помощью команды Bin:

Чтобы вернуться в режим ASCII, следует использовать команду ASCII.

2. Put (или Send). Команда Put позволяет скопировать локальный файл в текущий каталог удаленной машины. Чтобы переслать файл с именем localfile.txt в каталог C: emp на удаленной системе, нужно ввести команду

Ftp>put C: emp localfile.txt

1. Get (или Recv). Команда Get используется для загрузки файлов из Internet (или с удаленных машин) в текущий каталог локальной машины. Чтобы получить файл с именем remotefile.txt, следует ввести команду

Ftp>get remotefile.txt

Майкл Оти - научный редактор американского журнала Windows NT Magazine, президент компании TECA, специализирующейся на разработке программного обеспечения и оказании консультационных услуг. С ним можно связаться по адресу:

Команда ftp предназначена для задействования одноименной утилиты, представляющей собой FTP-клиент с интерфейсом командной строки.

Протокол FTP (File Transfer Protocol), как несложно догадаться из его названия, предназначен для передачи файлов между компьютерами. Ввиду того, что он предусматривает передачу паролей без шифрования, он является одним из самых небезопасных сетевых протоколов наряду с протоколом Telnet и не должен использоваться в случае поддержки сервером таких более безопасных протоколов для передачи файлов, как sftp и ftps. Помимо утилиты ftp в Linux для работы с серверами FTP могут также использоваться утилиты с графическим интерфейсом, такие, как Filezilla или Nautilus. FTP-серверы принимают соединения на порту 21; для передачи данных используются другие порты, что затрудняет использование межсетевых экранов.

Базовый синтаксис команды выглядит следующим образом:

$ ftp [параметры] [узел[:порт]]

Утилита работает в интерактивном режиме и поддерживает ограниченное количество параметров. Наиболее важными параметрами являются параметры -4 и -6 , позволяющие использовать для связи с сервером лишь протокол IPv4 и IPv6 соответственно, параметр -p , позволяющий активировать пассивный режим (упрощающий работу в системах с межсетевыми экранами, защищающими от соединений извне), параметр -i , позволяющий не выводить запросы при передаче множества файлов в интерактивном режиме, параметр -n , запрещающий читать данные для входа на сервер из файла .netrc в домашней директории и осуществлять автоматический вход, параметр -e , деактивирующий поддержку механизма истории в рамках интерактивной сессии и параметр -g , деактивирующий поддержку механизма шаблонов имен файлов.

Ввиду того, что утилита работает в интерактивном режиме, пользователю придется использовать команды для осуществления передачи файлов. Наиболее важные команды приведены в таблице ниже.

Команда Назначение
! [команда] Выполнить команду в локальной системе
ascii Активировать текстовый режим передачи данных (ASCII). Он используется по умолчанию.
bell Использовать звуковой сигнал для индикации окончания передач файлов.
binary Активировать бинарный режим передачи данных.

bye

exit

Завершить работу утилиты.
cd <директория> Изменить рабочую директорию на удаленной системе.
chmod <права доступа> <имя файла> Изменить права доступа к файлу на удаленной системе.

close

disconnect

Завершить сессию FTP с удаленным сервером и вернуться в интерактивный режим.
cr Переключить режим обработки переходов на новые строки. При активации их обработки будет удаляться символ возврата каретки для совместимости с UNIX-системами.
delete <имя файла> Удалить файл на удаленной системе.
debug [уровень отладки] Активировать режим отладки с заданным уровнем. В этом режиме утилита будет выводить все отправляемые серверу команды и ответы на них.

dir [имя удаленной директории] [имя локального файла]

ls [имя удаленной директории] [имя локального файла]

Вывести список содержимого директории на удаленной системе или записать его в файл на локальной системе в случае указания имени этого файла.

get <имя удаленного файла> [имя локального файла]

recv <имя удаленного файла> [имя локального файла]

Получить файл с удаленной системы и сохранить его под заданным именем в локальной системе.
hash Выводить символ решетки для индикации передачи каждого 1024-байтового блока.

help [команда]

? [команда]

Вывести информацию о команде.
idle [секунды] Установить длительность периода ожидания перед автоматическим разрывом соединения с сервером.
ipany Использовать IP-адрес любого типа после разрешения имени сервера.
ipv4 Использовать адрес IPv4 после разрешения имени сервера.
ipv6 Использовать адрес IPv6 после разрешения имени сервера.
lcd [имя директории] Изменить рабочую директорию в локальной системе.
mdelete Удалить множество перечисленных файлов на удаленной системе.

mdir [имена директорий] [имя локального файла]

mls [имена директорий] [имя локального файла]

nlist [имена директорий] [имя локального файла]

Вывести список содержимого множества перечисленных директорий на удаленной системе или записать его в файл на локальной системе в случае указания имени этого файла.
mget [имена удаленных файлов] Получить множество перечисленных файлов с удаленной системы и сохранить его в локальной системе.
mkdir <имя директории> Создать директорию с заданным именем на удаленной системе.
modtime <имя файла> Показать время последней модификации файла на удаленной системе.
mput <имена локальных файлов> Загрузить множество перечисленных локальных файлов на удаленную систему.
newer <имя удаленного файла> [имя локального файла] Загрузить указанный файл с удаленной системы лишь в том случае, если он был изменен позднее указанного файла с локальной системы.
open <имя узла> [порт] Установить соединение с сервером с заданным адресом и портом.
passive Включить/выключить пассивный режим.
prompt Переключить режим вывода подтверждений при передаче множества файлов.

put <имя локального файла> [имя удаленного файла]

send <имя локального файла> [имя удаленного файла]

Загрузить указанный локальный файл на удаленную систему под заданным именем.
pwd Вывести имя текущей директории на удаленной системе.
reget <имя удаленного файла> [имя локального файла] Продолжить загрузку файла с заданным именем с удаленной системы с сохранением этого файла под заданным именем на локальной системе.
rename [имя файла] [новое имя файла] Сменить имя файла на удаленной системе.
rmdir <имя директории> Удалить директорию на удаленной системе.
size <имя файла> Вывести размер файла на удаленной системе.
system Вывести информацию об операционной системе сервера.
umask Установить значение маски прав доступа для загружаемых на сервер файлов.
user <имя пользователя> [пароль] Представиться серверу.

Установка утилиты

В том случае, если в комплекте поставки вашего дистрибутива не содержится утилиты ftp , вам придется установить ее; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды. Подробнее об установке программного обеспечения рассказано в .

Команда для Linux Mint и Ubuntu:

$ sudo apt-get install ftp

Команда для Fedora Workstation:

$ sudo dnf install ftp

Примеры использования

Загрузка файлов на сервер

Для начала нужно соединиться с сервером. В данном случае используется анонимный сервер TELE2, поэтому в качестве имени пользователя вводится anonymous , а в качестве пароля - пустая строка (для ее ввода достаточно просто нажать на клавишу Enter ).

$ ftp speedtest.tele2.net
220 (vsFTPd 2.3.5)
Name (speedtest.tele2.net:alexu): anonymous
Password:
230 Login successful.
Remote system type is UNIX.

Сервер позволяет загружать файлы лишь в директорию upload , поэтому следует перейти в нее.

ftp> cd upload
250 Directory successfully changed.

Для корректной загрузки нужно активировать пассивный режим:

ftp> passive
Passive mode on.

Теперь можно перейти в директорию с загружаемыми файлами на локальной системе и использовать команду mput для загрузки файлов. Команда поддерживает шаблоны имен файлов и именно с помощью такого шаблона на сервер загружаются три файла изображения:

ftp> lcd nolf228/
Local directory now /home/alexu/nolf228
ftp> mput *.jpg
mput nolf228.jpg? y
227 Entering Passive Mode (90,130,70,73,97,210).
150 Ok to send data.
226 Transfer complete.
190576 bytes sent in 0.16 secs (1.1299 MB/s)
mput splash1024.jpg? y
227 Entering Passive Mode (90,130,70,73,86,152).
150 Ok to send data.
226 Transfer complete.
270176 bytes sent in 0.21 secs (1.2126 MB/s)
mput splash1280.jpg? y
227 Entering Passive Mode (90,130,70,73,84,122).
150 Ok to send data.
226 Transfer complete.
385734 bytes sent in 0.40 secs (943.9138 kB/s)

Для завершения работы утилиты достаточно ввести команду quit :

ftp> quit
221 Goodbye.

Загрузка файлов с сервера

Как и в случае загрузки файлов на сервер, в первую очередь нужно соединиться с ним. В случае анонимного сервера TELE2 используется имя пользователя anonymous и пустой пароль (ввод которого осуществляется путем простого нажатия на клавишу Enter ):

$ ftp speedtest.tele2.net
Connected to speedtest.tele2.net.
220 (vsFTPd 2.3.5)
Name (speedtest.tele2.net:alexd): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Для корректной загрузки файлов необходимо активировать пассивный режим:

ftp> passive
Passive mode on.

Чтобы убедиться в наличии на сервере нужных файлов, следует вывести список файлов из текущей директории сервера с помощью команды ls :

ftp> ls
227 Entering Passive Mode (90,130,70,73,94,9).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 1073741824000 Feb 19 2016 1000GB.zip
-rw-r--r-- 1 0 0 107374182400 Feb 19 2016 100GB.zip
-rw-r--r-- 1 0 0 102400 Feb 19 2016 100KB.zip
-rw-r--r-- 1 0 0 104857600 Feb 19 2016 100MB.zip
-rw-r--r-- 1 0 0 10737418240 Feb 19 2016 10GB.zip
-rw-r--r-- 1 0 0 10485760 Feb 19 2016 10MB.zip
-rw-r--r-- 1 0 0 1073741824 Feb 19 2016 1GB.zip
-rw-r--r-- 1 0 0 1024 Feb 19 2016 1KB.zip
-rw-r--r-- 1 0 0 1048576 Feb 19 2016 1MB.zip
-rw-r--r-- 1 0 0 209715200 Feb 19 2016 200MB.zip
-rw-r--r-- 1 0 0 20971520 Feb 19 2016 20MB.zip
-rw-r--r-- 1 0 0 2097152 Feb 19 2016 2MB.zip
-rw-r--r-- 1 0 0 3145728 Feb 19 2016 3MB.zip
-rw-r--r-- 1 0 0 524288000 Feb 19 2016 500MB.zip
-rw-r--r-- 1 0 0 53687091200 Jul 24 2014 50GB.zip
-rw-r--r-- 1 0 0 52428800 Feb 19 2016 50MB.zip
-rw-r--r-- 1 0 0 524288 Feb 19 2016 512KB.zip
-rw-r--r-- 1 0 0 5242880 Feb 19 2016 5MB.zip
drwxr-xr-x 2 106 109 69632 Apr 01 13:41 upload
226 Directory send OK.

Для загрузки отдельного файла используется команда get :

ftp> get 1MB.zip
local: 1MB.zip remote: 1MB.zip
227 Entering Passive Mode (90,130,70,73,99,63).
150 Opening BINARY mode data connection for 1MB.zip (1048576 bytes).
226 Transfer complete.
1048576 bytes received in 4.15 secs (247.0279 kB/s)

И, как обычно, работа с утилитой заканчивается вводом команды quit .

Часто требуется автоматизировать процессы скачивания, загрузки и удаления файлов c FTP-сервера. Например, при работе с распределенными базами данных 1С или для сохранения резервных копий. Но не все знают, что эти процедуры можно выполнять из командной строки, не прибегая к дополнительному программному обеспечению, то есть средствам Windows. Ниже я приведу синтаксис команд для работы с FTP, а также примеры bat-файлов для этих операций.

1. Команда ftp

Для обмена файлами с FTP-сервером используется команда ftp, вот ее синтаксис:

FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:sendbuffer]
[-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [узел]

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

Как видно, здесь нет операторов для подключения к серверу и работы с файлами. Дело в том, что эта команда только запускает сеанс ftp:

!
Временный переход в оболочку.

append
Добавление в файл.

ascii
Установка режима передачи файлов в формате ascii.

bell
Выдача звукового сигнала по завершении команды

binary
Установка режима передачи файлов в двоичном формате.

bye
Завершение сеанса ftp и выход.

cd <удаленный_каталог>
Изменение рабочего каталога на удаленном компьютере, где:
<удаленный_каталог> — имя каталога, который станет рабочим.

close
Завершение сеанса ftp.

debug
Переключение режима отладки.

delete <удаленный_файл>
Удаление файла на удаленном компьютере, где:
<удаленный_файл> — имя файла для удаления.

dir [<удаленный_каталог> ] [<локальный_файл> ]
Вывод содержимого каталога удаленного компьютера, где:
<удаленный_каталог>
<локальный_файл>

disconnect
Завершение сеанса ftp.

get <удаленный_файл> [<локальный_файл> ]
Получение файла, где:
<удаленный_файл>
<локальный_файл> — имя файла на локальном компьютере.

glob
Переключение метасимвольного расширения имен локальных файлов.

hash
Переключение вывода «#» для каждого переданного блока данных.

help [<команда> ]
Вывод справочных сведений для команды ftp, где:
<команда> — Команда, описание которой будет выведено, если не задана, произойдет вывод всех команд.

lcd [<локальный_каталог> ]
Изменение локального каталога рабочего компьютера, где:
<локальный_каталог> — Имя нового локального каталога, если не задан то будет использоваться имя текущего каталога.

literal <команда_1> … <команда_n>

<команда_n> — команды для отправки;

ls [<удаленный_каталог> ] [<локальный_файл> ]
Вывод сокращенного содержимого каталога удаленного компьютера, где:
<удаленный_каталог> — каталог, содержимое которого будет выведено, если не задан, используется текущий каталог;
<локальный_файл> — задает локальный файл, для сохранения в список, если не задан, список выводится на экран.

mdelete <удаленный_файл_1 > … <удаленный_файл_n >
Удаление нескольких файлов на удаленном компьютере, где:
<удаленный_файл_n> — имена файлов для удаления.

mdir <удаленный_каталог_1 > … <удаленный_каталог_n > <локальный_файл >
Вывод содержимого нескольких каталогов удаленного компьютера, где:
<удаленный_каталог_n> — каталог, содержимое которого будет выведено;
<локальный_файл> — задает локальный файл, для сохранения в список, если не задан, список выводится на экран.

mget <удаленный_файл_1> <удаленный_файл_n>
Получение нескольких файлов, где:
<удаленный_файл_n> — удаленный файл для копирования.

mkdir <удаленный_каталог>
Создание каталога на удаленном компьютере, где:
<удаленный_каталог> — имя удаленного каталога для создания.

mls <удаленный_каталог_1> … <удаленный_каталог_n> <локальный_файл>
Вывод сокращенного содержимого нескольких каталогов удаленного компьютера, где:
<удаленный_каталог_n> — каталог, содержимое которого будет выведено, если не задан, используется текущий каталог;
<локальный_файл> — задает локальный файл, для сохранения в список.

mput <локальный_файл_1> … <локальный_файл_n>
Отправка нескольких файлов, где:
<локальный_файл_n> — имя локальных файлов, которые будут скопированы.

prompt
Переключение интерактивной подсказки для составных команд.

put <локальный_файл> [<удаленный_файл> ]
Отправка одного файла, где:
<локальный_файл >
<удаленный_файл>

pwd
Вывод рабочего каталога удаленного компьютера.

quit
Завершение сеанса ftp и выход в командную строку.

quote <команда>
Отправка произвольной команды ftp, где:
<команда> — команда для отправки.

recv <удаленный_файл> [<локальный_файл> ]
Получение файла с использованием текущих настроек типов файлов, где:
<удаленный_файл> — удаленный файл для копирования;
<локальный_файл > — имя файла на локальном компьютере.

remotehelp [<команда> ]
Получение справочных сведений о командах удаленной системы, где:
<команда > — команда удаленной системы, если не задан, то выводится список всех команд.

rename <имя_файла> <новое_имя_файла>
Переименование удаленного файла, где:
<имя_файла > — имя файла для переименования;
<новое_имя_файла > — новое имя файла.

rmdir <имя_каталога>
Удаление каталога на удаленном компьютере, где:
<имя_каталога > — имя каталога для удаления.

send <локальный_файл> [<удаленный_файл> ]
Копирование одного файла с использованием текущих настроек типов файлов, где:
<локальный_файл > — имя локального файл для копирования;
<удаленный_файл> — имя файла на удаленном компьютере.

status
Отражение текущего состояния подключения ftp.

trace
Переключение трассировки пакетов.

type [<имя_типа> ]
Установка типа передачи файлов, где:
<имя_типа > — тип передачи файлов, если не указан будет выведен текущий тип передачи файлов.

user <имя_пользователя> [<пароль> ] [<учетная_запись> ]
Отправка сведений для подключения к удаленному компьютеру, где:
<имя_пользователя > — имя пользователя для подключения к удаленному компьютеру;
<пароль > — пароль, для указанного имени пользователя, если не указан, но требуется для подключения, команда ftp запросит его у пользователя;
<учетная_запись > учетная запись для подключения к удаленному компьютеру, если не указана, но требуется для подключения, команда ftp запросит ее у пользователя;

verbose
Переключение режима вывода сообщений.


Рассмотрим небольшой пример.

Для начала напишем «батник», который будет загружать на сервер сайт файл file_data.dat из «С:\example » . Алгоритм работы bat-файла будет такой:

  • Создаем файл transport.txt с последовательностью операторов ftp;
  • Выполняем команду ftp, указав в качестве параметров созданный файл;
  • Удаляем transport.txt.

В данном примере имя файла и директорий жестко прописаны в файле. Это не всегда удобно. Доработаем bat-файл таким образом, чтобы данные для загрузки он получал в качестве параметров, а также вынесем все изменяемые значения в переменные файла. Получим следующий код ():

Соответственно, чтобы скопировать файл file_data.dat из «C:\example » на FTP-сервер в «Temp\Backup » , потребуется запустить этот «батник» указав в качестве параметров имя файла, локальный и удаленный каталоги.

Аналогичным образом можно написать bat-файлы для и на FTP-сервере, а также исполняющий файл с произвольным набором инструкций.

Помогла ли Вам данная статья?