我想编写 WinSCP 脚本来下载一个文件,该文件每天早上 4 点到 4 点 30 分之间放置到远程服务器上。有没有办法通过时间戳来做到这一点?
我想伪代码:
get file.txt where timestap<1 hour from 4 am
我想编写 WinSCP 脚本来下载一个文件,该文件每天早上 4 点到 4 点 30 分之间放置到远程服务器上。有没有办法通过时间戳来做到这一点?
我想伪代码:
get file.txt where timestap<1 hour from 4 am
首先,我假设您的文件没有固定名称(与您使用固定名称的问题相反file.txt
)。如果不是,请解释一下,为什么需要基于时间戳的解决方案。
无论如何,您可以使用具有时间限制的文件掩码:
get "*.txt>2014-07-19 4:00"
要动态注入今天的日期,请使用以下%TIMESTAMP%
语法:
get "*.txt>%TIMESTAMP#yyyy-mm-ss% 4:00"
简单地说,上面的意思是,获取今天 4:00 之后创建的所有文件(根据时间限制的需要,%TIMESTAMP#yyyy-mm-ss%
解析为今天的日期格式yyyy-mm-ss
)。
在批处理文件中传递get
on WinSCP 命令行时(使用/command
开关,与使用/script
开关指定单独的脚本文件相反),您必须加倍%
以避免批处理文件试图解释%TIMESTAMP%
:
winscp.com /command ... "get ""*.txt>%%TIMESTAMP#yyyy-mm-ss%% 4:00"""
另一种解决方案是依赖相对时间的静态脚本:例如,您知道您的脚本在早上 6 点运行。因此,您让 WinSCP 下载过去 2 小时(早上 6 点 - 凌晨 4 点)内更新/创建的所有文件:
get *.txt>2h
另请参阅有关下载最新文件的WinSCP 文章。