Батник для загрузки файлов на FTP.

Аватар пользователя Drunkenmunky

Озадачился закинуть файл-другой на FTP с помощью стандартной программы Windows.
Почитал, естественно, мануал. Загуглил готовые решения.
Оказалось, что не всё так однозначно.
Убил на это пару часов. Ибо заело!
Почему в блог - все пописывают, а я чо.
Для экономии времени единомышленникам выкладываю готовый продукт.
Собственно, сам батник(ftpsend.bat). Тут все просто и строго по мануалу:

ftp.exe -n -i -s:config.txt

Параметр -s загружает файл config.txt с необходимыми параметрами, с подбором которых и возникли проблемы.
Уж не знаю почему готовые решения годные для других серверов не подошли. Возможно чего-то не понял.
Его содержимое:
open ftp.lib.rus.ec
USER
ocr
newbook
cd newsend
lcd "e:\Documents\Downloads"
binary
mput "*.djvu" "*.epub" "*.pdf"
bye

Именно в такой последовательности.
Вкратце о параметрах.
В первой строке адрес сервера
Во второй команда USER указывающая серверу кто пришел.
Третья и четвертая - логин и пароль.
Пятая - команда перейти в такой-то каталог на сервере(должен существовать), если не задать, будет использован корневой.
Шестая - команда для клиента перейти в каталог в своей(локальной) файловой системе, откуда, в дальнейшем, будут копироваться файлы.
Кстати, если в пути к каталогу будут нелатинские символы, скорее всего, работать не будет. У меня не работало. Возможно, дело в кодировке.
Седьмая - команда перейти в двоичный режим.
Восьмая - передать все файлы указанных через пробел расширений в ранее указанном каталоге.
Девятая - закрыть программу закончив сеанс.
Если предварительно нужно создать новый каталог на сервере, то перед командой cd нужно вставить команду mkdir
Например:
open ftp.lib.rus.ec
USER
ocr
newbook
mkdir newsend
cd newsend
lcd "e:\Documents\books"
binary
mput "*.djvu" "*.epub" "*.pdf"
bye

Как-то так.
P.S.Хотел приложить архив - оказывается нельзя.

Комментарии

Аватар пользователя sd

Drunkenmunky написал:
Озадачился закинуть файл-другой на FTP с помощью стандартной программы Windows.
Почитал, естественно, мануал. Загуглил готовые решения.
Оказалось, что не всё так однозначно.
Убил на это пару часов. Ибо заело!

Мануал был не той системы.
Работает в два клика, после закрепления в Быстром доступе - в один.
Drunkenmunky написал:
Почему в блог - все пописывают, а я чо.
Для экономии времени единомышленникам выкладываю готовый продукт.

И правильно. Но набор форматов - бедный, заливка глючит по всем, нужен и fb2.
--
Файл небольшой можно прикрепить прописав расширение .txt, и сделав предупреждение, что расширение надо сменить.
--
Ну и об mkdir: через фтп удобней всего добавлять книгу залив файл в папку своего имени (на сайте). Если имя на сайте содержит пробел, имя папки тоже должно быть с пробелом
Аватар пользователя Drunkenmunky

sd написал:
Но набор форматов - бедный, заливка глючит по всем, нужен и fb2.

Это запросто. Какой нужен, такой к параметру и пишем. Один, два... 52.
Пример
mput "*.txt" "*.fb2"

Другой пример:
mput "12345*.zip"

- загрузит только zip-архивы с именами начинающимися на 12345

Цитата:
Файл небольшой можно прикрепить прописав расширение .txt, и сделав предупреждение, что расширение надо сменить.

Это не наш метод. Кто-то ж не разрешил архивы загружать - расстроиться может.

Цитата:
Ну и об mkdir: через фтп удобней всего добавлять книгу залив файл в папку своего имени (на сайте). Если имя на сайте содержит пробел, имя папки тоже должно быть с пробелом

Если имя директории содержит пробелы, то его нужно заключать в кавычки
Пример
mkdir "directory newsend name"

Команду можно использовать многократно, если директория уже существует, сервер об этом сообщит и продолжит принимать следующие команды.
Аватар пользователя ProstoTac

Странно. Почему-то все стесняются пользоваться ТС. А там все встроено для работы с ФТП. И директории скачки/закачки видны наглядно и прочее и прочее.

Аватар пользователя Drunkenmunky

ProstoTac написал:
Странно. Почему-то все стесняются пользоваться ТС. А там все встроено для работы с ФТП. И директории скачки/закачки видны наглядно и прочее и прочее.

Никакого стеснения. Пользую в полный рост. Отличная программа.
Поставил задачу настроить элементарный софт. В прикладном смысле.
Сам поставил - сам выполнил.
Все работает. А не хотело - смысл в этом.
Аватар пользователя ProstoTac

Извините - насчет софта не понял. Везде те же параметры, загружаемые и в ТС.
Сервер - ftp.lib.rus.ec
Локальный каталог, Удаленный каталог. И т.д.
Это если есть время и охота поупражняться разве что...

Аватар пользователя Drunkenmunky

ProstoTac написал:
Извините - насчет софта не понял. Везде те же параметры,

Ладно. Сначала зайдем.
В Windows есть стандартная консольная программа C:\WINDOWS\system32\ftp.exe.
Чем хороши консольные программы - их можно использовать в своих сценариях(батниках в том числе).
Например в Планировщике задач.
Либо же один раз все настроить, для человека привыкшего к стандартному Проводнику.
Указав ему папку, в которую нужно положить книги, которые он хочет загрузить в Библиотеку.
И показать ему иконку на Рабочем столе по которой, всего навсего, нужно пару раз клацнуть.
Это разновидность кнопки "сделать пейсато" из известного анекдота.
Как-то так.
А, да. Самое главное.
Попробуйте не глядя на мое сообщение в начале, написать аналогичный сценарий к местному серверу.
Пользуясь только Гуглом.

"для человека привыкшего к стандартному Проводнику" начиная с Windows XP в оном Проводнике имеются ftp folders, куда можно просто положить файлы и больше никуда не клацать. Или речь о широких массах пользователей более старых форточек?

Аватар пользователя Drunkenmunky

Moveton написал:
"Или речь о широких массах

О них.

Не-не-не. Не все.

X