3

Рассматривать:

D:\Program Files\FileZilla FTP Client\filezilla.exe -c 0/GG/DG/ -a "K:\YY\XXXXX\AAAA\BB\idS.txt"

Этот код не работает, как он говорит:

"ПУТЬ НЕ НАЙДЕН" K:\YY\XXXXX\AAAA\BB\idS.txt

тем не мение

D:\Program Files\FileZilla FTP Client\filezilla.exe -c 0/GG/DG/ -a "K:\YY\XXXXX\AAAA\BB"

просто подключается к желаемому FTP-сайту без передачи файла.

Почему это не работает?

2 ответа2

12

FileZilla не имеет аргументов командной строки (или любого другого способа), которые разрешают автоматический перенос. Увидеть:
Аргументы командной строки клиента FileZilla
https://trac.filezilla-project.org/ticket/2317
Как отправить файл с FileZilla из командной строки?


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

Вы определенно сможете использовать WinSCP, так как он поддерживает все протоколы, которые поддерживает FileZilla (и даже больше).

Смотрите https://winscp.net/rus/docs/guide_automation

Типичный скрипт WinSCP для загрузки выглядит так:

open sftp://user:password@example.com/ -hostkey="ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx..."
put c:\mypdfs\*.pdf /home/user/
exit

Для запуска скрипта используйте:

WinSCP.com /log=ftp.log /script=script.txt

Это для SFTP. Если вы используете FTP, просто замените sftp:// на ftp:// и удалите -hostkey=...


WinSCP 5.9 может генерировать скрипт из импортированного сеанса FileZilla.

Подробнее см. В руководстве по автоматизации FileZilla.

(Я автор WinSCP)


Другой вариант, если вы используете SFTP, это клиент psftp:
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter6.html#psftp

1

-a сообщает клиенту FileZilla, где должны выполняться локальные файлы. То есть, именно здесь файлы должны быть загружены или выгружены по умолчанию (если в самой команде переноса не указаны конкретные пути).

Ожидается путь к папке.

Из документации FileZilla:

-a, --local =

Устанавливает локальный сайт (слева) на заданный путь.

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

FileZilla не предназначена для сценариев (их цель - быть клиентом с графическим интерфейсом), поэтому нет способа указать файлы для передачи из командной строки.

Возможно, посмотрите на использование встроенного в Windows FTP.exe для сценариев.

Из ftp /?:

Transfers files to and from a computer running an FTP server service
(sometimes called a daemon). Ftp can be used interactively.

FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A] [-x:sendbuffer] [-r:recvbuf
fer] [-b:asyncbuffers] [-w:windowsize] [host]

  -v              Suppresses display of remote server responses.
  -n              Suppresses auto-login upon initial connection.
  -i              Turns off interactive prompting during multiple file
                  transfers.
  -d              Enables debugging.
  -g              Disables filename globbing (see GLOB command).
  -s:filename     Specifies a text file containing FTP commands; the
                  commands will automatically run after FTP starts.
  -a              Use any local interface when binding data connection.
  -A              login as anonymous.
  -x:send sockbuf Overrides the default SO_SNDBUF size of 8192.
  -r:recv sockbuf Overrides the default SO_RCVBUF size of 8192.
  -b:async count  Overrides the default async count of 3
  -w:windowsize   Overrides the default transfer buffer size of 65535.
  host            Specifies the host name or IP address of the remote
                  host to connect to.

Notes:
  - mget and mput commands take y/n/q for yes/no/quit.
  - Use Control-C to abort commands.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .