结合RoboCopy和FtpUse

我们的客户需要通过FTP将指定的文件从networking传输到我们的networking。 每当指定的文件发生更改时,都必须自动调用传输。 为此,RoboCopy是完美的。 但是,RoboCopy不支持传输到FTP地址。 所以,我想将我们的FTP站点映射到客户端服务器上的一个驱动器号。 我发现FtpUse非常适合将FTP映射到驱动器盘符。 映射按预期工作,我可以在Windows资源pipe理器中看到FTP站点的内容 – 我也可以将数据写入映射的FTP驱动器。

所以,假设我已经映射了FTP站点来使用以下命令在本地机器上驱动Q:

ftpuse Q: [ftp address] [password] /USER:[username] 

并尝试使用此命令设置RoboCopy:

 robocopy [source dir] Q:\ *.xls *.xlsx /COPY:DAT /LOG+:"[LogDir]\FtpCopyLog.txt" /V /NP /MON:1 /MOT:1 /R:10 /W:30 

当RoboCopy运行时,它会失败并显示以下错误消息:

错误87(0x00000057)复制文件[源目录] \ test2.xlsm参数不正确

我试图映射驱动器并在samme用户帐户下运行RoboCopy命令,但似乎没有解决问题。

希望有人能帮忙。

任何帮助将不胜感激。

尝试在镜像模式下使用WinSCP。 WinSCP可以从这里下载:

http://winscp.net/eng/download.php

使用WinSCP,您不需要映射驱动器,它只是直接连接到FTP并为您完成工作。

执行副本时,您有权创build文件但不覆盖它们。 这些文件有多大? 从每次我编辑文件时收集到的文件将被全部复制,并用新版本覆盖旧文件。 没有办法评估文件中发生了什么变化,只是附加新的数据? 由于您不是要追加数据,而且您使用的工具不允许覆盖文件,所以理论上可以编写一些中间脚本,在复制新文件之前立即检测到删除过期文件。 这听起来像一个笨拙的解决scheme,但整个事情听起来像一个笨重的过程。 就我个人而言,我会重新评估目标是什么,但我试图坚持回答这个问题。 祝你好运!

既然你已经在使用windows,为什么不使用power shell呢? 您只能指定新的文件,并使用windows任务计划程序来安排任务,并使用内置的Windows工具。 无需支付内置function。 我认为这不是一个安全的FTP连接,你使用。 一些快速的脚本会给你一个非常灵活的廉价解决scheme。 我有几个强大的shell脚本,基于特定的标准拉和推动FTP文件。

https://stackoverflow.com/questions/19059394/powershell-connect-to-ftp-server-and-get-files

https://gallery.technet.microsoft.com/scriptcenter/PowerShell-FTP-Client-db6fe0cb/view/Discussions