Plink/PSCP通过FTP下载文件失败,求解决方案
问题核心:Plink/PSCP不支持FTP协议
首先得明确一点:Plink和PSCP是PuTTY家族的SSH/SFTP/SCP工具,它们只基于SSH协议工作,完全不支持传统的FTP(端口21那种)。这就是你连Server#2(仅FTP)失败的根本原因——工具本身就没做FTP的支持,和命令参数无关。
接下来给你几个在Windows批处理里通过FTP下载文件的可行方案:
方案1:用Windows自带的ftp命令行工具
Windows系统自带了原生的FTP客户端,适合简单的FTP下载场景。操作步骤如下:
- 新建一个文本文件,比如命名为
ftp_script.txt,写入以下命令(根据你的实际路径修改):open 10.238.xxx.xxx 21 uname pass123 # 如果服务器需要被动模式(大部分现代FTP服务器都要求),加上这行 passive get /remote/server/file/path/yourfile.txt C:\local\save\path\yourfile.txt bye - 在批处理文件里调用这个脚本:
ftp -s:ftp_script.txt
方案2:用WinSCP命令行版本(推荐)
既然你已经用WinSCP验证过Server#2的FTP能正常连接,那用WinSCP的命令行工具WinSCP.com会更灵活稳定,支持更多FTP特性(比如被动模式、UTF-8编码、断点续传等)。
直接在批处理里写一行命令即可:
winscp.com /command "open ftp://uname:pass123@10.238.xxx.xxx:21/" "get /remote/path/yourfile.txt C:\local\path\yourfile.txt" "exit"
如果你的密码里有特殊字符(比如@、/),可以换一种写法避免冲突:
winscp.com /command "open ftp://uname@10.238.xxx.xxx:21/ -password=pass123" "get /remote/path/yourfile.txt C:\local\path\yourfile.txt" "exit"
再划重点:为什么Plink/PSCP不行?
PuTTY家族的工具(Plink、PSCP、PuTTY本身)都是为SSH协议设计的,它们只能和支持SSH/SFTP/SCP的服务器通信。传统FTP是完全独立的协议,和SSH没有任何兼容的可能,所以你再怎么调整Plink的参数也没用,必须换工具。
内容的提问来源于stack exchange,提问作者user123
相关产品推荐
相关产品推荐

