我想编写WinSCP脚本来下载每天早上4-4:30之前放在远程服务器上的文件。有没有办法用时间戳来做到这一点?
我想伪代码:
get file.txt where timestap<1 hour from 4 am
答案 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文章。