首页 > 解决方案 > 将最新文件夹中的最新文件上传到 FTP 服务器

问题描述

我正在使用 Window 任务调度程序和 WinSCP 运行任务。基本上我想要做的是上传最新的文件,每天下午 1 点(在任务计划程序中完成),问题是每天都会在F:\Satellite_Imagery\goes16\fd\NOMAP\todays日期(2020-05-122020-05-13等)中创建一个新文件夹。我怎样才能让脚本自动找到最新的文件夹,然后找到该文件夹​​中的最新文件?

这是我正在运行的任务代码(没有找到最新文件夹的方法)

/log="C:\Users\Myuser\Documents\WinSCP.log" /ini=nul /command "open ftp://Username:password@ftp.myftpsite.com" "put -latest F:\Satellite_Imagery\goes16\fd\NOMAP\2020-05-12\*  /public_html/GOES16DATA/" "mv public_html/GOES16DATA/GOES*.jpg public_html/GOES16DATA/goestoday.jpg" "exit"

标签: batch-fileftpwinscp

解决方案


使用 WinSCP 脚本,您可以上传给定文件夹(您现在正在执行的操作)或最新文件夹中的最新文件。但不是最新文件夹中的最新文件。


但是,如果您知道文件夹名称是今天,您可以使用%TIMESTAMP% syntax来标识该文件夹(然后-latest切换以在该文件夹中查找最新文件):

"put -latest F:\Satellite_Imagery\goes16\fd\NOMAP\%%TIMESTAMP#yyyy-mm-dd%%\*  /public_html/GOES16DATA/"

如果你真的需要找到最新的文件夹,你将不得不使用更强大的语言。您可以使用来自例如PowerShell 脚本的WinSCP .NET 程序集

您可以根据这篇文章开始: 上传最新文件。您只需为两个级别重复选择代码 ( Get-ChildItem... Sort-Object... )。Select-Object


推荐阅读