batch-file - 从FTP服务器下载最新文件的批处理文件

标签 batch-file ftp

我有一个批处理文件,可以从我的 Web 服务器 FTP CSV 文件。
我只需要下载最新的 CSV 文件。

我怎么做?

这是我到目前为止:

open 44.44.44.444
username
password

CD /Client/ABCCompany/

get *.csv

quit
close()

谢谢。

最佳答案

没有简单的方法可以使用 ftp.exe 选择最新的文件。 .

  • 如果您知道该文件的文件名中包含今天的时间戳,则可以使用今天的时间戳动态生成脚本。您可以使用 DATE环境变量,尽管它有其警告。更可靠(也更复杂)的方法是使用 wmic os get LocalDateTime .
    How do I get current date/time on the Windows command line in a suitable format for usage in a file/folder name?
  • 如果您可以按字母顺序确定最新的文件,您可以:
  • 运行 ftp.exels命令重定向到文件
  • 按字母降序对文件进行排序
  • 阅读第一行
  • 生成第二个下载脚本 ftp.exe跑。

  • WinSCP可以下载最新的文件,使用-latest get command的开关:
    winscp.com /command ^
        "open ftp://username:password@ftp.example.com/" ^
        "cd /remote/path" ^
        "get -latest *.csv" ^
        "exit"
    
    另请参阅 downloading the most recent file with WinSCP 的指南.
  • WinSCP 还可以下载创建的文件 within some interval ,例如最近 24 小时(1 天):
    winscp.com /command ^
        "open ftp://username:password@ftp.example.com/" ^
        "cd /remote/path" ^
        "get *.csv>=1D" ^
        "exit"
    
    或自某个时间点以来创建的文件,例如要下载自午夜以来创建的文件,请使用 today keyword :
    winscp.com /command ^
        "open ftp://username:password@ftp.example.com/" ^
        "cd /remote/path" ^
        "get *.csv>=today" ^
        "exit"
    
    对于 today关键字,请确保您拥有最新版本的 WinSCP。
  • 使用 WinSCP,与使用 DATE 相比,您可以更轻松地下载文件名中带有时间戳的文件。或 wmic os get LocalDateTime (如上图所示)。使用 %TIMESTAMP%句法:
    winscp.com /command ^
        "open ftp://username:password@ftp.example.com/" ^
        "cd /remote/path" ^
        "get %%TIMESTAMP#yyyy-mm-dd%%.txt" ^
        "exit"
    
    (我是 WinSCP 的作者)
  • 关于batch-file - 从FTP服务器下载最新文件的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031163/

    相关文章:

    c++ - 为 C 和 C++ 安装 MessagePack 实现时出现链接器错误

    c++ - 如何以这种方式使用变量 C++

    java 。获取上次文件修改的日期

    Php ftp_connect 在 AWS 服务器上不起作用

    java - FTP下载的文件,解压时出错

    java - Runtime.getRuntime().exec() 和双击执行批处理文件有什么区别?

    windows - 在Windows Batch for Loop中运行可执行文件时,如何打印输出?

    php - 如何使用 PHP 在 FTP 周围复制文件

    Android:实时视频流

    powershell - 批处理文件未正确读取标志