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

批处理实现每日公司FTP自动下载遇阻 参考WinSCP方案仍未成功

自动化FTP每日下载脚本的实现问题与修正

原编写的批处理脚本无法达成预期效果,核心原因是把不同工具的命令语法完全混写,具体错误拆解:

  • 首行逻辑完全无效:open wget --user=USERNAME --password=PASSWORD FTP://000.00.0.0 不符合任何FTP工具的调用规则。如果使用Windows系统自带的ftp交互命令,open后仅需填写服务器地址,不能直接夹带wget参数、账号密码;如果直接调用wget工具,根本不需要前置open命令
  • FTP路径切换语法错误:cd/company/file 缺少路径前的空格,正确写法应为cd /company/file
  • 命令无逻辑拼接:get *.* forfiles /D+0 把FTP的下载命令和Windows本地的日期筛选命令直接硬拼,forfiles是本地系统命令,无法作为FTP下载的内置筛选参数生效
  • 操作方向完全反向:put C:\loads\path 是向FTP服务器上传本地文件的命令,和“从FTP下载文件到本地”的核心需求相悖

可直接落地的实现方案

方案1:纯wget批处理实现

无需进入FTP交互模式,直接把wget参数写入批处理即可完成每日下载:

wget --user=实际FTP账号 --password=实际FTP密码 --directory-prefix=C:\loads\path ftp://000.00.0.0/company/file/*.*
pause

参数说明:

  • --directory-prefix 直接指定本地文件的存储目录,wget会自动匹配路径结构
  • wget自带的更新检测机制会自动跳过未变更的旧文件,仅下载当日新增/更新的内容,无需额外拼接日期筛选逻辑

方案2:WinSCP正确实现(此前尝试失败多为脚本格式错误)

WinSCP无法直接把FTP操作命令拼在启动参数里,需要拆分脚本和启动逻辑:

  1. 新建纯文本脚本文件ftp_auto_download.txt,写入交互逻辑:
    open ftp://账号:密码@000.00.0.0
    cd /company/file
    get *.* >=1D
    exit
    
    其中>=1D是WinSCP内置的日期筛选规则,自动拉取最近1天修改的文件,匹配每日下载的需求
  2. 新建启动批处理,调用WinSCP加载脚本执行:
    "C:\Program Files (x86)\WinSCP\WinSCP.com" /script=ftp_auto_download.txt
    pause
    

内容的提问来源于stack exchange,提问作者Rafael Felipe Santos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 05:36:03