如何通过端口22进行基于批处理的FTP连接

时间:2017-09-20 00:36:01

标签: batch-file ftp

我有这个批处理文件,可以将文件发送到我的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

2 个答案:

答案 0 :(得分:0)

要回答您的文字问题,请参阅:
Cannot connect to non standard port number with Windows command-line ftp

但是,端口22用于SSH / SFTP。这与FTP无关,因此您无法使用命令行ftp

Windows中没有内置的SFTP客户端。您必须使用某些第三方SFTP客户端。

为此,请参阅Secure FTP using Windows batch script

答案 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

希望它有所帮助,仅供参考。