我不能成功通过我制作的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
在脚本中使用以下命令(在你的情况下close
和quit
)作为答案。 因为它们不是y
,转移被跳过。
具有相同效果的另一个选项是在ftp
命令行上使用-i
开关:
-i :在多个文件传输过程中禁用交互式提示。
这应该做到这一点:
ftp -i -s:"C:\automation\fileup.bat" MYSERVER.COM
在你的脚本中,像这样结束:
mput * bye
FTP命令允许发送多个文件,但是如果我们需要自动创建和传输的目录和子目录,那么我们可以使用ncftp 。 下面的步骤:
句法:
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