基本上我需要下载每天更新和更改名称的txt文件并在Excel中打开它。我的问题是我正在为MAC做这个,我找不到VBA的必要模块(据我所知)
所以我使用PERL脚本来实际下载文件,然后我将创建一个VBA脚本来打开最新的文件。我已成功使用net:ftp模块实际下载文件,按日期搜索的最佳方法是什么,只下载最新的文件?另外,获取是更好的选择吗? ftp站点不需要凭据。
#!/usr/bin/perl
use Net::FTP;
use strict;
use warnings;
my $ftp = Net::FTP->new("ftp.site", Debug => 0)
or die;
$ftp->login("anonymous",'-anonymous')
or die, $ftp->message;
$ftp->cwd("/public/doc/cor/")
or die;
$ftp->get("20130614c.txt")
or die , $ftp->message;
$ftp->quit;
答案 0 :(得分:2)
由于您的文件名是基于日期的,您可以这样做:
$ftp->get( [sort($ftp->ls)]->[-1] )
因为那将是你最新的文件...
答案 1 :(得分:1)
如果你总是可以根据当天查看名称,那么只需创建一个今天日期的格式化字符串:
my($sec, $min, $hour, $mday, $mon, $year) = localtime(time);
$year += 1900;
$mon += 1;
my $today = sprintf("%04d%02d%02d", $year, $mon, $mday);
现在根据您的惯例获得文件名:
$ftp->get("${today}c.txt")
如果您需要当前日期以外的日期,则可以使用日期数学库来计算所需日期并相应地对其进行格式化。我个人总是使用Date::Calc
。
当然,如果ftp主机上不存在该文件,请确保正常处理错误。