我无法通过批处理脚本将多个文件上传到 FTP

I can't upload a multiple files to FTP by batch script

我无法通过我创建的批处理文件将多个文件成功上传到某些 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 command关闭传输确认提示:

Toggles prompt mode on and off.

没有它,tje ftp 使用脚本中的以下命令(在您的例子中是 closequit)作为答案。由于它们不是 y,因此跳过传输。


另一个具有相同效果的选项是在 ftp command-line:

上使用 -i 开关

-i : Disables interactive prompting during multiple file transfers.

应该这样做:

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

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

mput *  
bye

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

  • 下载 NcFTP Client 3.2.6 for Microsoft Windows 如果您使用 Windows PC 通过 FTP[= 将文件传输到 Linux 服务器31=]
  • 由于您正尝试通过批处理文件发送,我们可以使用 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