我需要从文件夹中选择最新的一周文件,但我不想每次都输入一周。这是一份每周一次的报告,我想让它像按F3一样简单并让它运行。
eg. sales_data_201123
sales_data_201124
等等。在上面的示例中,应选择sales_data_201124
,因为它是最新的。{/ p>
请指教! 拉贾人
答案 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
调用要打开的文件。