2013-04-26 120 views
1

我想创建一个批处理脚本,能够在每次将新文件上载到FTP服务器时都能够监听我的ftp服务器并将文件下载到我的计算机。批处理脚本以监视FTP服务器上的更改

任何想法?我使用WinSCP。

+0

也参见[WinSCP赋予FTP设置以连续地监测变化和下载(http://stackoverflow.com/questions/20372868/winscp-ftp-setting-to-continuously-monitor-changes-and-download) – 2014-06-18 09:43:46

回答

5

您可以使用WinSCP scriptingsynchronize command

:Loop 
winscp.com /command^
    "option batch abort"^
    "open <session>"^
    "synchronize local <local directory> <remote directory>"^
    "exit" 
timeout 10 
goto :Loop 

在Windows XP及以上,使用ping -n 10 127.0.0.1代替timeout 10

1

使用WinSCP的/ synchronize本地开关。它将检查远程服务器并下载任何不匹配本地目录的文件。

winscp.exe [session] /synchronize local [ <local directory> [ <remote directory> ] ] 

然后你可以用任务管理器来按计划运行,或将其在批处理文件中循环

例如:

:Loop 
winscp.exe [session] /synchronize local [ <local directory> [ <remote directory> ] ] 
ping -n 10 127.0.0.1 
goto :Loop 

将运行它每10秒。

阅读用于WinSCP的Command line options了解更多。

+0

哈哈谢谢我忘记了同步选项。你有我的投票 – 2013-04-26 15:46:24

+0

我不明白这可能是自动的。您缺少'/ defaults' switch +,无论如何您都不能跳过同步核对清单窗口。 – 2013-04-29 08:57:31

+0

好的,它看起来可能只是你身边的语法错误而已;因为我看到你已经从'synchronize'脚本命令语法复制同步参数,而不是'/ synchronize'命令行参数。所以你可能在正确的轨道上。无论如何,看到我的答案正确的语法。 – 2013-04-29 09:01:36