我有这个批处理文件,可以将文件发送到我的 FTP。它可以登录并进行所有操作,但通过错误的端口进行连接。有什么办法可以通过端口 22 进行连接吗? 此 FTP 使用 000webhost
@echo off
CD %userprofile%/desktop
echo user MyUsername> ftpcmd.dat
echo PASSWORDHERE>> ftpcmd.dat
echo put %1>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat files.000webhost.com
del ftpcmd.dat
有关您字面问题的答案,请参阅:
无法使用 Windows 命令行 ftp 连接到非标准端口号。
不过,端口 22 用于 SSH/SFTP。这与 FTP 无关,因此您不能使用命令行
ftp
。
Windows 中没有内置的 SFTP 客户端。您必须使用一些第三方 SFTP 客户端。
为此,请参阅使用 Windows 批处理脚本确保 FTP 安全。
还有一种替代方法。 ftp命令有一个子命令open,open子命令支持特定端口,点击这里。因此,您可以将子命令 open 放入 ftpcmd.dat 文件中,并通过此子命令使用特定端口打开与 ftp 服务器的连接。
例如,我在我的网站上做了一个测试,打开ftp连接到ftp服务器172.18.128.122,端口21,它可以工作。
C:\>ftp -d -v -s:test.txt 127.0.0.1 #note, it is not ftp server ip here.
ftp> open 172.18.128.122 21
Name(172.18.128.122:(none)):
---> USER test
---> PASS test
ftp> put aaa.txt
---> PORT 172,18,128,121,218,69
---> STOR aaa.txt
ftp> quit
---> QUIT
我的 test.txt 文件如下:
open 172.18.128.122 21
test
test
put aaa.txt
quit
所以我认为你的bat文件可以如下所示:
@echo off
CD %userprofile%/desktop
echo open files.000webhost.com 22> ftpcmd.dat
echo user MyUsername>> ftpcmd.dat
echo PASSWORDHERE>> ftpcmd.dat
echo put %1>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat 127.0.0.1
del ftpcmd.dat
希望有帮助,仅供参考。