如何从带有sas宏的文件夹中选择最新的周文件?

时间:2011-06-28 11:23:58

标签: sas

我需要从文件夹中选择最新的一周文件,但我不想每次都输入一周。这是一份每周一次的报告,我想让它像按F3一样简单并让它运行。

eg. sales_data_201123
    sales_data_201124

等等。在上面的示例中,应选择sales_data_201124,因为它是最新的。{/ p>

请指教! 拉贾人

1 个答案:

答案 0 :(得分:3)

有几种方法可以解决这个问题。一种方法是查找特定文件 - 例如,使用today()函数与intnx()组合来计算您要查找的文件的名称,然后打开该文件。< / p>

我认为更简单的方法是将目录中的所有文件名读入数据集:

filename fnames pipe 'dir c:\temp\* /b';

data fnames;
  infile fnames pad missover;
  input @1 filename $255.;
  dt=scan(filename,3,'_');
run;

然后只需排序fnames并选择最后一个,或者更好,使用proc sql将文件名放入宏变量中:

proc sql noprint;
  select filename into :fname
  from fnames
  having dt=max(dt);
quit;

现在可以使用&fname调用要打开的文件。