我们有一个共享的FTP站点,每天都有文件上传,我需要下载并运行检查。我只是想尝试自动化这个过程。 FTP文件类似于name_20150901.xml
。
到目前为止,我有一个批处理文件来获取文件,但我无法弄清楚如何获取最新信息。这是我的代码:
@ftp -i -s:"%~f0"&GOTO:EOF
open ftp.site.com
<user>
<pass>
lcd my local direc
binary
get todaysfile_20150901.xml
我需要进行哪些更改才能阅读文件并获取最新文件?我的最终目标是让一个宏调用它,然后读取从FTP中获取并运行我的检查的文件。
答案 0 :(得分:3)
使用ftp.exe
选择最新文件并不容易。
如果您知道该文件具有今天的时间戳,则可以使用今天的时间戳动态生成脚本。您可以使用DATE
环境变量,尽管它有其警告。更可靠(也更复杂)的方法是使用wmic os get LocalDateTime
。
请参阅How to get current datetime on Windows command line, in a suitable format for using in a filename?
如果您可以按字母顺序确定最新文件,则可以:
ftp.exe
并将ls
命令重定向到文件ftp.exe
运行WinSCP可以下载过去24小时(1天)内创建的文件:
winscp.com /command ^
"open ftp://user:pass@ftp.site.com/" ^
"lcd c:\my\local\direc" ^
"get *>=1D" ^
"exit"
如果您确实需要下载最新文件(按时间戳),则可能需要更高级的脚本。
例如,有downloading the most recent file with WinSCP的指南。
(我是WinSCP的作者)