我无法通过批处理脚本将多个file upload到FTP

我不能成功通过我制作的batch file将多个file upload到某个FTP。

另外,我想从这个本地目录上传所有文件。

代码:

ftp -s:"C:\automation\fileup.bat" MYSERVER.COM 
 USERNAME PASSWORD ascii cd "/public_html/reports/" lcd "C:\automation\tests\HtmlReporter" mput * close quit 

错误:

 C:\automation>ftp -s:"C:\automation\fileup.bat" MYSERVER.COM Connected to server26.000webhost.com. 220---------- Welcome to Pure-FTPd [privsep] ---------- 220-You are user number 12 of 500 allowed. 220-Local time is now 07:03. Server port: 21. 220-This is a private system - No anonymous login 220 You will be disconnected after 3 minutes of inactivity. User (MYSERVER.COM:(none)): 331 User USERNAME OK. Password required 230-OK. Current restricted directory is / 230-109 files used (1%) - authorized: 10000 files 230 14084 Kbytes used (0%) - authorized: 1536000 Kb ftp> ascii 200 TYPE is now ASCII ftp> cd "/public_html/reports/" 250 OK. Current directory is /public_html/reports ftp> lcd "C:\automation\tests\HtmlReporter" Local directory now C:\automation\tests\HtmlReporter. ftp> mput * mput 000500de-0092-0095-00d9-00a100f000f7.json? close mput 00090020-0041-007c-00db-00b9003c0085.json? quit ftp> 

我试图上传的文件:

在这里输入图像说明

使用prompt命令关闭传输确认提示:

提示模式打开和关闭。

没有它,tje ftp在脚本中使用以下命令(在你的情况下closequit )作为答案。 因为它们不是y ,转移被跳过。


具有相同效果的另一个选项是在ftp命令行上使用-i开关:

-i :在多个文件传输过程中禁用交互式提示。

这应该做到这一点:

 ftp -i -s:"C:\automation\fileup.bat" MYSERVER.COM 

在你的脚本中,像这样结束:

 mput * bye 

FTP命令允许发送多个文件,但是如果我们需要自动创建和传输的目录和子目录,那么我们可以使用ncftp 。 下面的步骤:

  • 如果您使用Windows PC通过FTP将文件传输到Linux服务器,请为Microsoft Windows下载NcFTP Client 3.2.6
  • 因为你试图通过批处理文件发送,所以我们可以使用ncftpput命令,它是Internet脚本文件传输程序
  • 创建批处理文件(比如说ncftpupload.bat),并提供:

句法:

 ncftpput -u username -p password -m -R SERVER_IP_ADDRESS /remote_directory local_directory\* 

例:

 ncftpput -u ftpuser1 -p ftppass1 -m -R 192.168.1.10 /var/www C:\public_html\* 

使用的开关是:

 -u: FTP username -p: FTP password -m: Attempt to make the remote destination directory before copying. -R: Recursive mode; copy whole directory trees