WinSCP基于时间的文件下载

时间:2013-05-08 18:49:54

标签: command-line scripting timestamp winscp

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

我想伪代码:

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

1 个答案:

答案 0 :(得分: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"

简单来说,上述方法是,今天晚于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"""

另一个解决方案是依赖于相对时间的静态脚本:例如。你知道你的脚本早上6点运行。因此,您让WinSCP下载在过去2小时(早上6点至凌晨4点)更新/创建的所有文件:

get *.txt>2h

另见downloading the most recent file上的WinSCP文章。