我想从 FTP 服务器下载大约 15,000 个文件夹(不是文件)到我的远程驱动器。我有 FTP 软件,但用它进行批量传输很费时间。
因此,我正在寻找一个命令行程序(Windows)来将文件夹从服务器传输到本地驱动器。如果我得到正确的命令行(Windows),我可以构建批处理文件并在下班时间运行它。
答案1
几个选项:
- 从命令行(或批处理文件)使用 ftp.exe。Microsofts FTP 工具的命令列表位于nsftools.com虽然我注意到它和我在 Windows 8.1 上看到的有一些区别,所以最好运行
ftp /?
以获取适合您的帮助信息。 - 如果你喜欢冒险,你可以考虑使用 PowerShell 中的 FTPWebRequest .Net 类(示例见堆栈溢出。
- 看看PowerShell FTP 客户端模块,我认为这是前面提到的 .Net 类的一个很好的包装器。我自己还没有用过这个。
- 检查您是否可以增加您使用的 GUI 应用程序中的同时流/下载量。这可能是最简单的解决方案。
答案2
使用WinSCP 脚本来自批处理文件:
@echo off
winscp.com /command ^
"open ftp://username:password@host/" ^
"get /root/* c:\archive\" ^
"exit"
它将/root/
递归地从远程文件夹下载所有文件和子文件夹。
(我是 WinSCP 的作者)
答案3
我建议你看看Windows 版 Wget或者,如果远程服务器允许,甚至可以适用于 Windows 的 rsync或者rsync Windows 备份代理。
一些注释Wget:
GNU Wget是一款免费的网络实用程序,可使用 HTTP 和 FTP(两种最广泛使用的 Internet 协议)从万维网上检索文件。它以非交互方式运行,因此可以在注销后在后台运行。
支持 HTML 页面和 FTP 站点的递归检索...
...Wget 在慢速或不稳定的连接上工作得非常好,可以持续获取文档直到完全检索完毕。在支持它的服务器(HTTP 和 FTP)上,可以从上次中断的位置重新获取文件
其他一些关于Windows 中的 rsync 工具:
同步通过仅传输文件更改的部分来同步本地和异地文件系统。首次上传后,每次后续上传都会非常快,因为只发送文件中的差异部分。
Windows 备份代理:rsync.net 客户可以使用功能强大、易于使用的备份代理,处理自动加密备份 - 甚至是打开的文件。
答案4
您可以使用 Windows 资源管理器并使用鼠标。