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

修改WinSCP PowerShell脚本:仅同步90天以上的CSV文件

解决方案

要实现仅下载并删除远程SFTP服务器上修改时间超过90天的.csv文件,只需调整WinSCP的文件掩码并修改同步参数即可,修改后的脚本片段如下:

# 计算90天前的日期,格式转为WinSCP支持的YYYY-MM-DD格式
$90DaysAgo = (Get-Date).AddDays(-90).ToString("yyyy-MM-dd")

$transferOptions = New-Object WinSCP.TransferOptions
# 设置文件掩码:仅匹配修改时间早于/等于90天前的.csv文件
$transferOptions.FileMask = "*.csv<=$90DaysAgo"

# 同步目录:下载符合条件的远程文件到本地,同时删除远程已处理的文件
$synchronizationResult = $session.SynchronizeDirectories(
    [WinSCP.SynchronizationMode]::Local, $localPath, $remotePath, $False, $True,
    [WinSCP.SynchronizationCriteria]::Time, $transferOptions)

# 可选:检查同步操作是否出现错误
$synchronizationResult.Check()

关键修改说明

  • 文件掩码时间筛选:*.csv<=$90DaysAgo 是WinSCP的专用语法,< 表示文件修改时间早于指定日期,<= 确保包含刚好满90天的文件,精准筛选目标文件。
  • 启用远程文件删除:将SynchronizeDirectories的第5个参数(removeFiles)从原脚本的$False改为$True,这样WinSCP会在成功下载文件后自动删除对应的远程文件。
  • 保留时间同步逻辑:[WinSCP.SynchronizationCriteria]::Time 保持不变,确保基于文件修改时间判断是否需要同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:52:38