【发布时间】:2014-10-26 18:09:46
【问题描述】:
您好,我正在尝试编写一个 MS Dos 批处理文件,该文件登录到 ftp 服务器并下载文件
ftp 托管在 IIS 中,但不受我的直接控制(第 3 方)。
我的脚本如下(文件名ftpcmd.dat)
user bob
mypassword
get /foldrname/export.txt c:\export.txt
quit
然后它会像这样执行
ftp -n -s:ftpcmd.dat ftp.myserver.co.za
问题是get命令总是卡死,ftp这样响应
501 Server cannot accept argument.
150 Opening ASCII mode data connection.
我尝试在命令提示符下手动执行此操作,结果完全相同。
我可以使用 FileZilla 之类的工具来做到这一点,我注意到它会切换到被动模式,所以为了模拟这一点,我尝试在登录后添加它
quote pasv
这会切换到被动模式,但同样的问题仍然存在。
注意 - 我无法让服务提供商进行任何配置更改。 另请注意 - 使用 filezilla 客户端可以完美运行
谢谢!
【问题讨论】:
-
您是否尝试使用其他工具获取文件?例如 wget:
wget ftp://user:password@ftp.myserver.co.za/foldrname/export.txt或者,您可以获取 wireshark,并嗅探 filezilla 发送的确切命令。然后只需将它们放在 ftpcmd.dat 中还有一个注释:上次我使用 ftp 脚本时,它是这样的:open ftp.server.com user password ... disconnect bye -
wiresharks 的输出有点超出我的想象。我可以看看 wget,但是我的下一个功能是删除一个文件,然后放入,我认为这都超出了 wget 的范围?
-
在
get命令之前更改文件夹怎么样?喜欢:cd foldername然后get export.txt -
也试过了。没有运气。我现在正在尝试 Curl
标签: batch-file command-line ftp