批量/macros代码从FTP站点获取最新的文件

我们有一个每天上传文件的共享FTP站点,我需要下载并运行检查。 我只是试图自动化的过程。 FTP文件就像name_20150901.xml

到目前为止,我有一个batch file来获取文件,但我不知道如何获得最新的。 这是我的代码:

 @ftp -i -s:"%~f0"&GOTO:EOF open ftp.site.com <user> <pass> lcd my local direc binary get todaysfile_20150901.xml 

我需要读取哪些文件并获取最新的文件? 我的最终目标是有一个macros来调用它,然后读取从FTP抓取的文件并运行我的检查。

有没有简单的方法来select与ftp.exe最新的文件。

  • 如果您知道该文件具有今天的时间戳,则可以使用今天的时间戳dynamic生成脚本。 您可以使用DATE环境variables,尽pipe它有一些注意事项。 更可靠(也是更复杂)的方法是使用wmic os get LocalDateTime

    请参阅如何在Windows命令行上以适当的格式在文件名中使用当前date时间?

  • 如果您可以按字母顺序确定最新的文件,则可以:

    • ls命令redirect到一个文件运行ftp.exe
    • 按字母顺序将文件按降序sorting
    • 读第一行
    • 生成第二个ftp.exe运行的下载脚本
  • WinSCP可以下载在过去24小时(1天)内创build的文件:

     winscp.com /command ^ "open ftp://user:pass@ftp.site.com/" ^ "lcd c:\my\local\direc" ^ "get *>=1D" ^ "exit" 
  • 如果你真的需要下载最新的文件(按时间戳),你可能需要一些更高级的脚本。

    例如,有一个指南可以用WinSCP下载最新的文件 。

    (我是WinSCP的作者)