batch-file - 将最新文件夹中的最新文件上传到 FTP 服务器
问题描述
我正在使用 Window 任务调度程序和 WinSCP 运行任务。基本上我想要做的是上传最新的文件,每天下午 1 点(在任务计划程序中完成),问题是每天都会在F:\Satellite_Imagery\goes16\fd\NOMAP\todays
日期(2020-05-12
,2020-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"
解决方案
使用 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
推荐阅读
- php - LARAVEL:在 URL 中显示 slug 而不是 ID - 类别列表
- c# - 在 C# 中反序列化 json 字符串的问题
- python - 如何修复错误:mtrand.RandomState.choice 模块的“ValueError:‘a’和‘p’必须具有相同的大小”?
- xml - 需要在 XML 字符串中复制标签
- ios - 设置视图控制器的视图属性和该视图的 tableview 子视图的掩码会导致两个看起来不同的掩码
- sql - 使用查询从变量中提取数字字符串
- android - 滑动以从 recyclerView 中删除或编辑项目
- python - 尝试加载 Librosa 的示例文件时找不到文件错误
- laravel - 使用工厂 laravel 存储假货
- volttron - 连接到联邦时如何在下游存储数据?