2013-05-08 110 views
2

我想编写WinSCP脚本来下载每天早上4-4:30之间放置在远程服务器上的文件。有没有办法用时间戳来做到这一点?基于WinSCP时间的文件下载

我想伪代码:

get file.txt where timestap<1 hour from 4 am 

回答

5

首先,我想你的文件没有固定的名称(与你的问题有固定名称file.txt)。如果没有,请解释一下,为什么您需要基于时间戳的解决方案。


无论如何,你可以使用一个file mask with a time constraint

get "*.txt>2014-07-19 4:00" 

动态地注入今天的日期,使用%TIMESTAMP% syntax

get "*.txt>%TIMESTAMP#yyyy-mm-ss% 4:00" 

简单地说,上述手段,获取所有文件后创建(时间限制需要,%TIMESTAMP#yyyy-mm-ss%以格式yyyy-mm-ss解析为今天的日期)。

当通过在一个批处理文件的WinSCP命令行的get(使用/command开关,如相对于使用/script开关来指定一个单独的脚本文件),您对%两倍,以避免批处理文件试图解读%TIMESTAMP%

winscp.com /command ... "get ""*.txt>%%TIMESTAMP#yyyy-mm-ss%% 4:00""" 

另一种解决方案是依赖于一个相对时间的静态脚本:EG你知道你的脚本早上6点运行。所以,你让WinSCP赋予下载更新的/在过去的2小时(6 am-4am)创建的所有文件:

get *.txt>2h 

又见downloading the most recent file WinSCP赋予的文章。