您好我正在尝试编写一个登录到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客户端
完美运行谢谢!
答案 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:\
的权限