我想写WinSCP脚本下载一个文件,放置在远程服务器每天凌晨4-4:30之间有没有办法用时间戳做到这一点?
我想要伪代码:
get file.txt where timestap<1 hour from 4 am
发布于 2013-05-13 16:19:34
首先,我假设您的文件没有固定的名称(与您的问题固定名称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小时(6am -4am)内更新/创建的所有文件:
get *.txt>2h
另请参阅downloading the most recent file上的WinSCP文章。
https://stackoverflow.com/questions/16448038
复制相似问题