批量/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的作者)