我有这个批处理文件,可以将文件发送到我的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
答案 0 :(得分:0)
要回答您的文字问题,请参阅:
Cannot connect to non standard port number with Windows command-line ftp
但是,端口22用于SSH / SFTP。这与FTP无关,因此您无法使用命令行ftp
。
Windows中没有内置的SFTP客户端。您必须使用某些第三方SFTP客户端。
答案 1 :(得分:-1)
还有另一种方法。 ftp 命令有一个子命令打开,而open子命令支持特定端口,单击here。因此,您可以将子命令打开放在ftpcmd.dat文件中,并通过此子命令打开通过特定端口连接到您的ftp服务器。
例如,我在我的网站上进行了测试,打开ftp连接到端口21的ftp服务器172.18.128.122,它可以工作。
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
希望它有所帮助,仅供参考。