批量ftp挂在上面

时间:2014-09-02 12:59:05

标签: batch-file command-line ftp

您好我正在尝试编写一个登录到ftp服务器的MS Dos批处理文件,并下载文件

ftp托管在IIS中,但它不是我直接控制的(第三方)。

我的脚本如下(文件名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客户端

完美运行

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为这基本上是@rostok所说的一部分,但通常我会使用

user bob mypassword
get /foldrname/export.txt c:\export.txt 
quit

您也可以使用

调用它
open ftp.myserver.co.za
user bob mypassword
get /foldrname/export.txt c:\export.txt 
quit

确保foldrname真的不在根目录下。如果你

会发生什么
cd foldrname

这会出错吗? cd \foldrname是否有效或出错?你能否成功使用lcd c:\export.txt?可能只是一个路径问题。

请务必在创建脚本之前手动尝试,以便准确了解每一步中发生的情况。

答案 1 :(得分:0)

试试这个脚本:

open ftp.myserver.co.za
bob
mypassword
binary
lcd "c:\"
get /foldrname/export.txt 
quit

执行它:

ftp -i -s:ftpcmd.dat 

请注意,您需要具有写入 c:\

的权限