Batch file 批处理ftp挂起在get上

Batch file 批处理ftp挂起在get上,batch-file,command-line,ftp,Batch File,Command Line,Ftp,您好,我正在尝试编写一个MS Dos批处理文件,该文件将登录到ftp服务器,并下载一个文件 ftp托管在IIS中,但不直接由第三方控制 我的脚本如下文件名ftpcmd.dat user bob mypassword get /foldrname/export.txt c:\export.txt quit 然后像这样执行 ftp -n -s:ftpcmd.dat ftp.myserver.co.za 501 Server cannot accept argument. 150 Opening

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

ftp托管在IIS中,但不直接由第三方控制

我的脚本如下文件名ftpcmd.dat

user bob
mypassword
get /foldrname/export.txt c:\export.txt 
quit
然后像这样执行

ftp -n -s:ftpcmd.dat ftp.myserver.co.za
501 Server cannot accept argument.
150 Opening ASCII mode data connection.
问题是它总是卡在get命令上,ftp的响应如下

ftp -n -s:ftpcmd.dat ftp.myserver.co.za
501 Server cannot accept argument.
150 Opening ASCII mode data connection.
我曾尝试在命令提示符下手动执行此操作,结果完全相同

我可以使用FileZilla这样的工具来实现这一点,我注意到它会切换到被动模式,所以为了模拟这一点,我尝试在登录后添加它

quote pasv
这会切换到被动模式,但同样的问题仍然存在

注意-我无法让服务提供商进行任何配置更改。 另请注意-使用filezilla客户端,它可以完美地工作


谢谢

我认为这基本上是@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?可能只是路径问题

在创建脚本之前,请确保手动尝试,这样您就可以准确地知道每个步骤发生了什么。

尝试此脚本:

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

ftp -i -s:ftpcmd.dat 

请注意,您需要权限才能写入c:\

是否尝试使用其他工具获取该文件?比如wget:wgetftp://user:password@ftp.myserver.co.za/foldrname/export.txt或者,您可以获取wireshark,并嗅探filezilla发送的确切命令。然后把它们放在ftpcmd.dat中还有一个提示:上次我使用ftp脚本时,它是这样的:打开ftp.server.com用户密码。。。断开byewirsharks的输出有点超出我的理解范围。我可以看一下wget,但是我的下一个功能是删除一个文件,然后放入,我认为这两个都不在wget的范围之内?在get命令之前更改文件夹怎么样?比如:cd foldername和之后的get export.txt也尝试过。不走运。我现在正在试卷发