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

mmc*_*ynn 27 ftp command-line

我想通过 FTP 传输目录的内容,但似乎找不到使用通配符的正确方法。这似乎是一件很常见的事情;我的整个方法是错误的吗?

命令是

ftp -s:"C:\Scripts\ftp01" ftpserver.domain.com
Run Code Online (Sandbox Code Playgroud)

调用的脚本如下。每个 billlinkc 更新。

username
password
ascii
cd "/destinationfolder"
lcd "C:\Backup"
mput *.bak
close
quit
Run Code Online (Sandbox Code Playgroud)

脚本启动,没有文件被复制,FTP 会话保持打开状态。

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>
Run Code Online (Sandbox Code Playgroud)

结论

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

ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com
Run Code Online (Sandbox Code Playgroud)

Ƭᴇc*_*007 38

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

  • 对于那些想知道“这个 `prompt` 命令的语法是什么”的人来说,您实际上只需键入“prompt”,它就会将提示从真切换为假。 (5认同)
  • 另一种禁用交互式提示的方法是在`ftp` 命令本身上使用`-i` 标志(例如`ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com`)。[文档](http://www.nsftools.com/tips/MSFTP.htm) 将 `-i` 选项描述为:“在多个文件传输期间关闭交互式提示。” (2认同)