自动将FTP文件夹的内容复制到本地Windows文件夹而不覆盖?

时间:2013-08-29 15:06:15

标签: shell unix ftp

我需要将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 *

感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

使用wget for Windows

如果要包含子目录(根据实际远程路径的深度调整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/*

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

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