1

我需要将 FTP 文件夹的所有文件复制到我的本地 Windows 文件夹,但不替换已经存在的文件。这需要是每小时无人看管的作业/任务。

这是这项工作需要做的: 1. 连接到 FTP 服务器。2. 在 ftp 中,移动到文件夹 /var/MyFolder。3. 在本地 PC 中,移动到 c:\MyDestination。4. 复制 /var/MyFolder 中 c:\MyDestination 中不存在的所有文件。5. 断开连接。

我之前曾使用MGET *(从 .bat 运行)尝试过以下脚本,但它会复制并覆盖所有内容。这意味着即使之前复制了 1000 个文件,它也会再次复制它们。

open MyFtpServer.com
UserName
Password
lcd c:\MyDestination
cd /var/MyFolder
binary
mget *

任何帮助表示赞赏。

谢谢。

4

1 回答 1

0

对 Windows使用wget 。

如果要包含子目录(根据实际远程路径的深度调整cut-dirs数量) :

cd /d C:\MyDestination
wget.exe --mirror -np -nH --cut-dirs=2 ftp://UserName:Password@MyFtpServer.com/var/MyFolder

如果您不想要子目录:

cd /d C:\MyDestination
wget.exe -nc ftp://UserName:Password@MyFtpServer.com/var/MyFolder/*

“魔术”位(对于第二种形式)是-nc选项,它告诉wget不要覆盖本地已经存在的文件。请记住,旧文件也会被单独保留,因此如果您的 FTP 服务器上的文件被编辑或更新,它不会被重新下载。如果您还想更新文件,请使用-N而不是-nc.

(请注意,您也可以键入wget而不是wget.exe,我只是包含扩展名以指出这些是 Windows 批处理文件命令)

于 2013-08-29T18:33:25.813 回答