考虑:
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 站点,而不传输任何文件。
为什么它不起作用?
答案1
FileZilla 没有任何命令行参数(也没有任何其他方式)允许自动传输。请参阅:
FileZilla 客户端命令行参数
https://trac.filezilla-project.org/ticket/2317
如何从命令行使用 FileZilla 发送文件?
虽然您可以使用任何其他允许自动化的客户端。您尚未指定正在使用的协议,FTP 还是 SFTP。
您一定能够使用 WinSCP,因为它支持 FileZilla 的所有协议(甚至更多)。
看https://winscp.net/eng/docs/guide_automation
用于上传的典型 WinSCP 脚本如下:
open sftp://user:[email protected]/ -hostkey="ssh-rsa 2048 xxxxxxxxxxx...="
put c:\mypdfs\*.pdf /home/user/
exit
要运行脚本,请使用:
WinSCP.com /log=ftp.log /script=script.txt
这是针对 SFTP 的。如果您使用的是 FTP,只需将 替换sftp://
为ftp://
并删除-hostkey=...
WinSCP 可以生成脚本来自导入的 FileZilla 会话。
有关详细信息,请参阅FileZilla 自动化指南。
(我是 WinSCP 的作者)
如果您使用 SFTP,另一个选择是 psftp 客户端:
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter6.html#psftp
答案2
-a
告诉 FileZilla 客户端本地文件的工作应该在哪里完成。也就是说,默认情况下文件应该从哪里下载或上传(如果传输命令本身没有使用特定路径)。
它需要一个文件夹的路径。
-a,--本地=
将本地站点(左侧)设置为给定路径。
对于包含空格的路径,请使用双引号。
FileZilla 不打算编写脚本(他们的目标是成为一个 GUI 客户端),因此无法从命令行指定要传输的文件。
也许可以考虑使用 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.