如何使用sas宏从文件夹中选择最近一周的文件?

如何使用sas宏从文件夹中选择最近一周的文件?,sas,Sas,我需要从文件夹中选择最近一周的文件,但我不想每次都输入该周。这是一份周报,我想让它像按F3键并运行一样简单 eg. sales_data_201123 sales_data_201124 等等。在上面的示例中,应选择sales\u data\u 201124,因为它是最新的 请告知! 拉詹斯有几种方法可以解决这个问题。一种方法是查找一个特定的文件——例如,使用today()函数结合intnx()计算您要查找的文件的名称,然后打开该文件 但是,我认为更简单的方法是将目录中的所有文件名读入

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

eg. sales_data_201123
    sales_data_201124
等等。在上面的示例中,应选择
sales\u data\u 201124
,因为它是最新的

请告知!
拉詹斯

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

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

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
调用要打开的文件