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

使用WinSCP仅下载本地不存在的新文件 避免覆盖已有文件配置咨询

WinSCP 仅下载不存在的本地文件的脚本修改方案

你需要实现的「本地已存在文件则跳过、不覆盖」需求可以直接通过 WinSCP 内置的 get 命令参数实现,不需要额外编写复杂判断逻辑,修改步骤如下:

核心修改点

  • 在原有 get 命令后添加 -skipexisting 参数:该参数是 WinSCP 原生支持的功能,执行传输时会自动校验目标路径下的同名文件,只要文件已存在就直接跳过传输,完全不会覆盖本地已有内容。
  • 注意原有 rm /*.csv 逻辑的适配:如果你的需求是仅删除已经成功下载到本地的远程文件,不要直接执行全量删除,避免跳过传输的文件被误删后无法后续同步。如果你的业务逻辑允许只要本地存在文件就可以删除远程副本,可保留原有删除逻辑。

修改后的完整脚本

# Automatically abort script on errors
option batch abort

# Disable overwrite confirmations that conflict with the previous
option confirm off 

# Connect using a password 
open sftp://SERVER@IP_ADDRESS:PORT -privatekey="PRIVATE_KEY" -hostkey="HOSTKEY" -passive=off 

# Change remote directory
cd in
cd DIRECTORY

# Force binary mode transfer
option transfer binary

# Get ALL files from the directory specified, skip existing local files
get -skipexisting /*.csv* \\DIRECTORY

# 【可选调整】如果不需要全量删除远程csv,可注释下方rm命令,或改为仅删除已成功下载的文件
# rm /*.csv

# Exit WinSCP
bye

补充说明

-skipexisting 参数在 WinSCP 5.8.1 及以上版本均支持,如果你使用的版本过低无法识别该参数,升级到最新稳定版即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:54:10