1 (изменено: Вадим, 2011-09-07 17:28:54)

Тема: AHK: отправка файла на FTP сервер

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

; Следующий пример демонстрирует, как можно автоматизировать загрузку на FTP, используя встроенную
; в операционную систему команду для работы с FTP. Скрипт проверялся в Windows XP и 98se.
FTPCommandFile = %A_ScriptDir%\FTPCommands.txt
FTPLogFile = %A_ScriptDir%\FTPLog.txt
FileDelete %FTPCommandFile% ; На случай, если предыдущий запуск был прерван преждевременно.

FileAppend,
(
open host.domain.com
username
password
binary
cd htdocs
put %ПеременнаяСодержащаяИмяЦелевогоФайла%
delete SomeOtherFile.htm
rename OldFileName.htm NewFileName.htm
ls -l
quit
), %FTPCommandFile%

RunWait %comspec% /c ftp.exe -s:"%FTPCommandFile%" >"%FTPLogFile%"
FileDelete %FTPCommandFile% ; Удалить по соображениям безопасности.
Run %FTPLogFile% ; Открыть лог-файл для просмотра.

2 (изменено: creature.ws, 2011-09-07 17:52:28)

Re: AHK: отправка файла на FTP сервер

А вам пример не помог? Какую часть поставленной задачи не удаётся решить используя пример?

3

Re: AHK: отправка файла на FTP сервер

так нужно удалить строчки

put %ПеременнаяСодержащаяИмяЦелевогоФайла%
delete SomeOtherFile.htm
rename OldFileName.htm NewFileName.htm

вместо них написать

filecopy, c:/asd.txt, ftp://login:password@ftp.narod.ru

?

4 (изменено: DaVinchi, 2011-09-12 22:59:01)

Re: AHK: отправка файла на FTP сервер

В общем то для того, что бы скрипт написаный выше не высвечивал никаких окошек, достаточно вписать в конце строки

RunWait %comspec% /c ftp.exe -s:"%FTPCommandFile%" >"%FTPLogFile%"
RunWait %comspec% /c ftp.exe -s:"%FTPCommandFile%" >"%FTPLogFile%",,hide

А так же убрать стротку

Run %FTPLogFile% ; Открыть лог-файл для просмотра.

Вот как у меня получилось:


; Следующий пример демонстрирует, как можно автоматизировать загрузку на FTP, используя встроенную
; в операционную систему команду для работы с FTP. Скрипт проверялся в Windows XP и 98se.
#NoTrayIcon
FTPCommandFile = %A_ScriptDir%\FTPCommands.txt
FileDelete %FTPCommandFile% ; На случай, если предыдущий запуск был прерван преждевременно.

FileAppend,
(
open мой.фтп.ком
мойлогин
мойпароль
binary
cd htdocs
put мой_фаил_для_отправки
delete SomeOtherFile.htm
rename OldFileName.htm NewFileName.htm
ls -l
quit
), %FTPCommandFile%

RunWait %comspec% /c ftp.exe -s:"%FTPCommandFile%", ,Hide
FileDelete %FTPCommandFile% ; Удалить по соображениям безопасности.

Теперь в трее не появляется значек и окно процесса не высвечивается, так же не сохраняет фаил лога и не открывает его после окончания.

5 (изменено: Вадим, 2011-09-14 20:19:14)

Re: AHK: отправка файла на FTP сервер

я понял (или не совсем) чего у меня не получилось отправить. ФТП.ексе не поддерживает отправку в passive режиме, а народ.ру как раз требует его. Пришлось брать другой клиент - curl.

6

Re: AHK: отправка файла на FTP сервер

Вадим пишет:

я понял (или не совсем) чего у меня не получилось отправить. ФТП.ексе не поддерживает отправку в passive режиме, а народ.ру как раз требует его. Пришлось брать другой клиент - curl.

Рекомендую сменить на более ровный ФТП! Народ такой... народ... Я к примеру использую http://www.multimania.co.uk/. Бесплатный (до определенного размера) и никаких тупостей, как на народе!

7 (изменено: Вадим, 2011-09-16 18:01:34)

Re: AHK: отправка файла на FTP сервер

Не могу зарегистрироваться)
Беру continue, переходит на главную страницу.

8

Re: AHK: отправка файла на FTP сервер

Вадим, не забываем пользоваться шифтом.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9 (изменено: Malcev, 2011-12-20 05:09:09)

Re: AHK: отправка файла на FTP сервер

А возможно ли этот скрипт усовершенствовать.
1) Чтобы например если неправильный логин либо пароль либо если в данный момент сервер не доступен, то он продолжал бы долбиться 1 раз в 10 секунд скажем.
2) Если файл уже такой существует, то продолжал бы его записывать, а не стирал.
3) Как загрузить всю директорию целиком, пока гружу вот так

put *.txt
put *.avi

Что-то в ftp.exe я не нашёл таких комманд.
И curl тоже не прокатывает  - его retrieve исключительно под transient error.
А мне надо чтобы он при любой ошибке продолжал долбить.
Потому как мне надо быть уверенным, что файл залился.

10

Re: AHK: отправка файла на FTP сервер

Из бесплатных нашёл этот клиент, который удовлетворяет мои потребности.
http://www.bitkinex.com/