2011-11-16 14:47:23 +0000 2011-11-16 14:47:23 +0000
25
25

如何从命令行中FTP多个文件?

我想FTP一个目录的内容,但是我好像找不到正确的方法,使用通配符。这似乎是很常见的事情,我的整个方法是不是错了?

命令是

ftp -s:"C:\Scripts\ftp01" ftpserver.domain.com

调用的脚本如下。按billinkc更新。

username
password
ascii
cd "/destinationfolder"
lcd "C:\Backup"
mput *.bak
close
quit
230 User username Logged in Successfully
ftp> ascii
200 TYPE Command OK A
ftp> cd "/destinationfolder"
250 Directory successfully changed to "/destinationfolder"
ftp> lcd "C:\Backup"
Local directory now C:\Backup.
ftp> mput *.bak
mput 9829980.bak? close
mput 6406766.bak? quit
ftp>
ftp>

脚本启动后,没有复制文件,FTP会话保持打开。 ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com

结论* 我需要添加标志来抑制PROMPT命令:

&001

答案 (7)

36
36
36
2011-11-16 15:22:28 +0000

在发出mput命令之前,先发出prompt命令来关闭交互式模式。一旦关闭了,它应该不会要求你确认每个文件的mput(或一个mget)。

3
3
3
2011-11-16 15:01:47 +0000

我从来没有尝试过使用路径名做本地文件夹,但我通过修改本地目录(lcd)来实现:

username
password
ascii
cd "/destinationfolder"
lcd Backup
mput *.bak
close
quit
2
2
2
2011-11-16 15:28:32 +0000

试着在prompt n行之前插入mput行,然后再插入&007行

1
1
1
2014-04-25 16:55:45 +0000

正如Tim Haegele提到的那样,如果你有能力并愿意安装的话,ncftp在Linux上可以非常顺利地做到这一点:

sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01
1
1
1
2011-11-16 14:55:58 +0000

使用mput命令把多个文件。

1
1
1
2011-11-16 22:09:40 +0000

如果你有管理员权限,可以安装ncftpput。它很容易使用,非常适合递归FTP上传。递归传输的开关是-R

该软件包含在大多数Linux发行版中。对于Windows系统,它可以通过 Cygwin 安装。

0
0
0
2019-06-03 19:51:05 +0000

这是我用过的脚本,对我来说是有效的。