我正在尝试使用批处理文件下载某些文件,但是在读取用户名行后会抛出错误“无效命令”。
在我的批处理文件中,我按如下方式调用我的ftp文件:
ftp -n -s:ftp_download.txt
我的ftp_download.txt看起来像这样:
open myname.com
test@myname.com
test
lcd C:\myDownloads
cd download_files
get MY_NEW_FILES_*.xml
bye
但是在test@myname.com
行之后会抛出错误'无效命令',因此脚本无法连接到我的ftp服务器。
进行身份验证时如下:
open myname.com
user test@myname.com test
我收到'未连接'错误
然而,使用此用户名(test@myname.com)和密码(测试),我仍然可以使用Filezilla进行连接。
我在某个地方错过了一个命令吗?
答案 0 :(得分:1)
对于像CharlesKSQL这样的人,可能会偶然发现我的问题。 以下是我如何使用它(事实证明我出于某种原因必须使用sftp,因此请确保它已在您的服务器上启用);
脚本(ftp_download.txt)包含以下内容:
option batch abort
option confirm off
open sftp://<username>:<password>@<host> -hostkey="<fingerprint/key>"
option transfer binary
cd <your folder>
get <some file>
如果您不知道指纹和/或钥匙;你可以在连接槽sftp时在FileZilla中找到它们。它们显示在首次连接到服务器时显示的弹出窗口中,或者当您已连接时,可以单击右下角状态栏中的小锁定图标。
现在实际连接你需要一些软件(当使用Windows时)来创建安全连接。我用的是WinSCP。 您可以下载可移植可执行文件here并将它们(以便于使用)放在与批处理文件相同的文件夹中。 然后,您可以通过添加参数来调用批处理文件中的可执行文件:
winscp.exe /script=ftp_download.txt
然后应执行下载脚本。
P.S。:自从我完成这件事已经有一段时间了,据我所知,它仍在运作。
答案 1 :(得分:0)
您的文字文件应如下所示:
open myname.com
user
<enter username here> <password here>
lcd C:\myDownloads
cd download_files
get MY_NEW_FILES_*.xml
bye
试试看,看看是否有帮助