我正在使用.bat脚本通过FTP传输单个文本文件。 .bat文件代码包含以下代码:
ftp -s:FTPScript_Text.txt
带有FTP信息的文本文件FTPScript_Test如下所示:
open myserver.com 21
ftpuser
ftppassword
quote pasv
cd incomingfiles
put emptyfile.txt
quit
CMD的输出如下:
C:\Users\ks\Desktop>ftp -s:FTPScript_Text.txt
ftp> open myserver.com 21
Connected to myserver.com.
220 Service ready for new user.
530 Access denied.
User (myserver.com:(none)):
331 User name okay, need password for ftpuser.
230 User logged in, proceed.
ftp> quote pasv
227 Entering Passive Mode (10,200,203,45,40,235)
ftp> cd incomingfiles
250 Directory changed to /incomingfiles
ftp> put emptyfile.txt
200 Command PORT okay.
150 File status okay; about to open data connection.
它会无限期地停留在“ 150状态是否正常...”行上。这应该花多长时间?我认为这需要几秒钟或几分钟。 我没有太多访问该服务器本身的权限,我认为防火墙应该不错,因为该服务器有时会通过FTP将文件发送给我...(我认为)。还是代码或文件路径有问题?
编辑:如果这是一个重复的问题,则其他响应者从未处理过类似以下的事情,在这种情况下,只要客户和服务器双方都同意,就可以支持PASV模式:https://community.hpe.com/t5/Operating-System-OpenVMS/Using-Windows-FTP-in-PASSIVE-mode/td-p/4989864#.XUwwB-hKhGM >
(来自该链接的最后一个帖子...“ 1”)Windows FTP似乎确实支持被动模式。实际上,FTP有一个Windows注册表项“ use PASV yes”,因此FTP似乎默认为被动模式。”