Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 378, средняя оценка - 4.66
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
#1

Памятка по командам FTP - CMD/BAT

26.10.2012, 03:12. Просмотров 64484. Ответов 14
Метки нет (Все метки)

Автор обзора: Денис "Reagent" Ходус. Дополнено © мной

Все мы знаем сочетание буковок FTP, которое расшифровывается как File Transfer Protocol. Старая, но до сих используемая технология передачи файлов между двумя компьютерами с использованием TCP/IP сети.

Большинство из нас пользуется для работы с этим протоколом какими-либо утилитами или модулями файловых менеджеров. Но давайте представим себе ситуацию, когда нужно получить доступ к FTP-серверу через командную строку. Никаких панелей со списком файлов и кнопочками "Копировать" и "Удалить" там у Вас не будет. (Кстати, я часто именно через командную строку лажу - мне так просто даже быстрее - если приходится что-то сделать или проверить FTP.)

Итак, команда для работы с FTP как в Windows, так и в Unix (включая Linux Debian, CentOS, ubuntu, rhel, FreeBSD и т.д.) одинаковая - так и называется - "ftp".

Просто подсоединиться к определенному серверу - синтаксис тоже отличаться не будет:
Bash
ftp 192.168.0.1

А вот хитрости типа автологина и автоматического принятия или отсылки файлов - у разных ОС немного свои и мы здесь их разбирать не будем. Зато разберем - что же через командрую строку все-же сделать можно в самой сессии - и сами команды, конечно.

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


Команды

Открываем консоль. Запускаем нашу утилиту, введя буквы ftp
Видим на экране приглашение:
Bash
ftp>

HELP

Выдает список поддерживаемых команд


? имя команды

Получение короткого описания указанной команды.


OPEN

Присоединиться к указанному серверу (пишем его имя либо IP-адрес).
Также можно указать порт через пробел. По-умолчанию используется стандартный - 21.
Bash
ftp> open ftp.microsoft.com

При этом сервер Вас спросит логин и пароль.


CLOSE или DISCONNECT

Закрыть соединение с текущим FTP сервером.
Bash
ftp> close

BYE или QUIT

Закрыть соединение и выйти из утилиты FTP.
Bash
ftp> bye

USER

Залогиниться на данном сервере под указанным пользователем (Вы должны быть уже подключены).
Bash
ftp> user myusername

где вместо "myusername" подставьте имя пользователя, под которым логинитесь. FTP-сервер Вас спросит пароль для этого пользователя перед тем, как пустить.


LS или DIR

Показать список файлов и директорий в текущей папке на сервере.
Bash
ftp> ls

MLS или MDIR

Выгрузить список файлов из нескольких директорий в файл на Ваш компьютер.
Bash
ftp> mls dir1 dir2 dir3 mylocalfile.txt

CD

Перейти в указанную папку на сервере.
Bash
ftp> cd ../another/folder
Частный случай этой команды: CDUP - перейти в родительскую директорию - то же самое, что и "CD ..":
Bash
ftp> cdup

LCD

Перейти у указанную папку на Вашем компьютере.
Bash
ftp> lcd d:\temp

PWD

Показать текущий путь (текущую папку) на FTP сервере.
Bash
ftp> pwd

GET или RECV

Загрузить с FTP сервера в текущую папку Вашего компьютера указанный файл.
Bash
ftp> get myftpfile.txt

MGET

Загрузить несколько файлов в текущую папку Вашего компьютера с сервера FTP.
Bash
ftp> mget file1.txt file2.txt
mget file1.txt? y
mget file2.txt? y

NEWER

Загрузить с сервера FTP на Ваш компьютер указанный файл только если Ваш файл старее (т.е. удаленный файл свежее).
Bash
ftp> newer myfile1 myfile1

Здесь первый аргумент - имя файла на сервере, а второй аргумент - имя файла на Вашем компьютере.


PUT или SEND

Загрузить на FTP сервер указанный файл с Вашего компьютера.
Bash
ftp> put mylocalfile.txt

MPUT

Загрузить на сервер несколько файлов с Вашего компьютера.
Bash
ftp> mput myfile1.txt myfile2.txt
mput myfile1.txt? y
mput myfile2.txt? y

DELETE

Удалить указанный файл на сервере.
Bash
ftp> delete remotefile.txt

MDELETE

Удалить несколько файлов на сервере.
Bash
ftp> mdelete file1 file2

MKDIR

Создать директорию на сервере.
Bash
ftp> mkdir mynewdir

RMDIR

Удалить директорию на сервере
Bash
ftp> rmdir mydir

PROMPT

Избавляет от необходимости подтверждать получение файлов по маске нажатием клавиши "Y".


HASH

Отображает индикацию загрузки файлов с помощью меток хеширования (#).
Одна такая метка, по-умолчанию = 2048 байт.
Нужно для того, чтобы видеть - не подвисло ли получение больших файлов.


BINARY

Установка режима передачи данных в двоичном формате (подходит для любых типов файлов).


Пример сессии FTP

Вот пример короткой FTP сессии, в которой мы подключаемся к серверу, создаем папку "newfiles" и заливаем в эту папку файл "binfile.bin".

Bash
ftp
ftp> open 31.170.155.55 21
ftp> Anonymouse
ftp> 
ftp> mkdir newfiles
ftp> cd newfiles
ftp> put "c:\binfile.bin"
ftp> bye

Для автоматизации рутинной работы можно создать текстовой файл со списком команд, например FTPCommand.txt а затем выполнить код:
Bash
ftp.exe -s:FTPCommand.txt

Для успешного подключения к серверу утилита FTP.exe не должна блокироваться Вашим брандмауером.
Для внесения в список исключений встроенного в ОС Windows можно выполнить код:
Bash
netsh firewall add allowedprogram "%windir%\system32\ftp.exe" ENABLE

Данный код подходит, как для Windows XP, так и Windows 7.


Ссылки на другие темы с готовыми реализациями:
Копирование папки с FTP-сервера на локальный диск
Как проверить наличие файла через ftp?
8
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 03:12
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Памятка по командам FTP (CMD/BAT):

Нужна справка по командам - CMD/BAT
Нужна справка по командам к каждой строчке @echo off set "v=%*"& call :%~1 "%%v:%~1=%%" pause :/n for %%a in (%~1) do >$...

Соответствие команд MS-DOS командам Linux - CMD/BAT
Команда MS-DOS|Аналог в Windows*|Команда Linux|Описание ATTRIB|ATTRIB|chmod|Изменение атрибутов файла BACKUP|нет|cpio,...

Где найти помощь по командам CMD для Windows 7? - CMD/BAT
где можно наити описание всех команд командной строки ,простите за тавталогию .. писать по каждой хелп пока не хочу ,хотя вариант

Загрузка на FTP без ftp.exe, и т. д. - CMD/BAT
Прочёл все посты, пользовался встроенным яндекс поиском, но ответа не нашел. Возможно ли загрузить на FTP файл test.txt без...

Открыть ftp.exe, открыть соединение с FTP-сервером, залогиниться, загрузить файл в бинарном режиме и выйти - CMD/BAT
С помощью .bat мне нужно открыть ftp.exe, открыть соединение с ftp сервером, залогиниться, залить файл в бинарном режиме, выйти. Я...

Скачать файлы с FTP-сервера и закачать файлы на FTP-сервер - CMD/BAT
Сдравствуйте, как скачать и закачать файлы на ftp сервер без искажения и повреждения всех расшений, кроме текстовых? К примеру такая...

14
Avazart
Эксперт С++
7570 / 5555 / 326
Регистрация: 10.12.2010
Сообщений: 24,914
Записей в блоге: 17
19.11.2013, 03:05 #2
SITE CHMOD

Изменение прав на файл.
Если сервер поддерживает команду SITE которая должна быть в списке выдаваемым командой HELP, и если сервер линуксовый:

Bash
1
SITE CHMOD 777 file1.txt
2
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
19.11.2013, 04:16  [ТС] #3
QUOTE PASV

Переход в пассивный режим передачи данных.
1
gimntut
879 / 182 / 15
Регистрация: 18.07.2011
Сообщений: 257
19.11.2013, 09:26 #4
Для интерактивного режима требуется наличие человека который будет вводить команды.
В автоматическом режиме требуется наличие файла с командами. Например файл скачивания CureIt:
Код
open ftp.drweb.com
binary
get /pub/drweb/cureit/cureit.exe
Файл очень маленький поэтому его можно преобразовать в такую команду:
Bash
1
(echo binary& echo get /pub/drweb/cureit/setup.exe)| ftp -A ftp.drweb.com
Здесь запускается интерактивный режим, а команды echo имитируют ввод команд человеком.
2
gimntut
879 / 182 / 15
Регистрация: 18.07.2011
Сообщений: 257
24.11.2013, 13:44 #5
Цитата Сообщение от gimntut Посмотреть сообщение
Файл очень маленький поэтому его можно преобразовать в такую команду:
Bash
1
(echo binary& echo get /pub/drweb/cureit/setup.exe)| ftp -A ftp.drweb.com
Даже такой маленький вариант читать не очень удобно, а если команд будет чуть побольше, то очень не удобно.
Поэтому лучше записать так:
Bash
1
2
3
4
5
(
echo binary
echo get /pub/drweb/cureit/setup.exe
)^
|ftp -A ftp.drweb.com
В таком варианте можно передать в ftp очень большое число команд и не запутаться в них.
3
Eva Rosalene
Male-to-Female
4046 / 1583 / 241
Регистрация: 06.01.2013
Сообщений: 4,183
Завершенные тесты: 1
24.11.2013, 13:48 #6
А чем просто
Bash
1
)|ftp -A ftp.drweb.com
не угодило?
1
gimntut
879 / 182 / 15
Регистрация: 18.07.2011
Сообщений: 257
24.11.2013, 20:05 #7
Цитата Сообщение от FraidZZ Посмотреть сообщение
А чем просто ... не угодило?
Мне просто очень хотелось воткнуть знак крышки.
Так сказать, напомнить ещё один способ писать длинные команды в несколько строк.
2
rolksy
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 2
30.05.2014, 13:29 #8
Подскажите, пожалуйста, что за ошибка 500 PORT/EPRT (Active Mode/Extended Active Mode) is not supported. Use PASV/EPSV instead of this. Как от нее избавиться?
Или как скопировать файл с диска С на FTP сервер используя passive mode?
0
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
30.05.2014, 14:50  [ТС] #9
Добавьте перед командой копирования:
Bash
1
quote PASV
1
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
29.12.2014, 11:51  [ТС] #10
Команда для создания папки на FTP-сервере
1
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
29.06.2015, 16:24  [ТС] #11
FTP команды сервера на Linux-е

http://www.computerhope.com/unix/ftp.htm

Добавлено через 3 минуты
Ошибки, возвращаемые FTP-сервером
1
Astex
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 10
27.01.2018, 10:16 #12
Можно ли изменить размер блока для HASH ?
Сильно маленький
Интересует в Windows.
0
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
27.01.2018, 14:43  [ТС] #13
Попробуйте:

Код
hash 4096
или сколько вам нужно.
1
Astex
0 / 0 / 0
Регистрация: 10.06.2014
Сообщений: 10
29.01.2018, 20:27 #14
пробую:
Код
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Users\alex>ftp
ftp> hash 4096
Вывод метки хеширования Вклftp: (2048 байт/хеш-метка).
ftp> hash 1024
Вывод метки хеширования Выкл.
ftp> hash=1024
Недопустимая команда.
ftp> hash 8192
Вывод метки хеширования Вклftp: (2048 байт/хеш-метка).
ftp>
наверно это невозможно, все гуглы и яндексы молчат
хотя мож в линуксе к каком-то .cfg/.conf/.ini можно. На худой конец перекомпилить, но это уже перебор, да и у меня windows.
Ладно, перетопчусь...
0
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
29.01.2018, 20:59  [ТС] #15
В одной из справок был именно такой синтаксис.
Возможно, этот сервер не поддерживает.
0
29.01.2018, 20:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2018, 20:59
Привет! Вот еще темы с ответами:

1C 8.x Шпаргалка по командам 8х - 1С
Не подскажите где можно взять КРАТКИЙ ЭЛЕКТРОННЫЙ учебник по 1с8х??? Вроде мисты под 77. Перебрать документы, справочники, удалить,...

По командам консоли - Жесткие диски
Ситуация следующая: 2 физ жестких диска, на каждом по 2 основных раздела, на каждом физ диске один раздел активный Загружаемся под erd...

ПК не подчиняется командам - Удаление вирусов
при запуске ноутбука,всплывает и моргает окно "ПОИСК",вот логи,посмотрите пожалуйста в чем может быть дело.

Справочник по командам FreeBSD - FreeBSD
Где найти справочник по freebsd , там где есть все команды ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru