You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改批处理文件从AWS S3获取最后修改的两个文件?

解决AWS S3批量复制最后两个修改文件的批处理脚本问题

原脚本仅能获取最后1个文件,要实现获取最后2个文件的需求,需调整JMESPath查询语法并优化循环处理逻辑:

修改后的批处理代码

@echo off
for /f "delims=" %%i in ('aws s3api list-objects-v2 --bucket example.sftp --prefix data/ --query "sort_by(Contents, &LastModified)[-2:].Key" --output text') do (
    aws s3 cp "s3://example.sftp/%%i" "E:\DATA_S3"
)

关键修改说明

  • JMESPath查询调整:将[-1].Key改为[-2:].Key,[-2:]是JMESPath的切片语法,代表取排序后列表的最后2个元素;而你之前用的[-2]仅会提取倒数第2个元素,这就是修改后无法实现需求的核心原因。
  • 循环逻辑优化:直接在for循环体内执行复制命令,避免单个变量被多次覆盖的问题,确保每个返回的文件Key都能被单独处理。

额外提示

如果存储桶内符合条件的文件不足2个,脚本会自动复制所有现有符合条件的文件,不会触发报错。

内容的提问来源于stack exchange,提问作者rocky_alpine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 09:53:00