【问题标题】:'500 Port command invalid' error in Windows ftp clientWindows ftp 客户端中的“500 端口命令无效”错误
【发布时间】:2019-12-31 18:32:18
【问题描述】:

我创建了一个脚本来使用 VBA 从 FTP 服务器下载文件来触发该脚本。我可以连接到服务器并导航到正确的目录,但是当我得到文件时,我得到了消息:

500 端口命令无效

我已经尽可能多地调整了代码,但我对端口或 FTP 的了解还不够,无法知道我需要更改什么。

VBA 代码:

Dim FTPcommand As String
Dim wsh As Object

FTPcommand = "ftp -n -s:" & Chr(34) & "C:\path\to\FTP_commands.txt" & Chr(34)
Set wsh = CreateObject("WScript.Shell")
wsh.Run FTPcommand, 5, True

脚本:

open ftp.blahblahbah.bl
user username password
lcd C:\Users\me\Documents\location
cd /specific location/
get "file.xlsx"

我希望文件能够下载,但会收到以下消息(在脚本登录并成功导航到文件路径后):

ftp> 打开 ftp.address.com
已连接到 ftp.address.com
220 欢迎来到address.com
ftp> 用户用户名密码
---> 用户用户名
331 用户 USERNAME,请输入密码
---> 密码
230 密码 好的,用户登录
ftp lcd C:\Users\joe\Documents
本地目录现在为 C:\Users\joe\Documents。
ftp> cd /位置/
--->CWD /位置/
250 更改目录正常
ftp 获取“file.xlsx”
---> 端口 192.168.1.121.242.113
500 端口命令无效
RETR 文件.xlsx
425 无法打开数据连接

【问题讨论】:

  • 添加-d 切换到ftp 命令行并向我们展示完整的输出。
  • 感谢 Martin- 现在在上面更新了。

标签: vba windows download ftp


【解决方案1】:

---> 端口 192.168.1.121.242.113
500 端口命令无效

看起来ftp 正在向另一个网络中的 FTP 服务器发送内部 IP 地址。服务器无法连接到该 IP 地址。我不认为,有办法用ftp 解决它。您网络的防火墙/NAT 可以通过在PORT 命令中转换IP 地址来解决它。


或者您需要使用其他支持 FTP 被动模式的 FTP 客户端。

您可以使用WinSCP FTP client。有一个guide to converting Windows ftp script to WinSCP

以下 WinSCP 代码与您的等效:

Dim FTPcommand As String
Dim wsh As Object

FTPcommand = """C:\Path\To\winscp.com"" /ini=nul /script=""C:\Path\To\FTP_commands.txt"""
Set wsh = CreateObject("WScript.Shell")
wsh.Run FTPcommand, 5, True

脚本:

open ftp://username:password@ftp.blahblahbah.bl/
lcd C:\Users\me\Documents\location
cd /specific location/
get "file.xlsx"
exit

(我是 WinSCP 的作者)

【讨论】:

  • 正是我需要的,谢谢!它运行良好。感谢您抽出时间提供帮助
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 2015-06-14
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多