filevar infile语句读入多个txt文件

时间:2015-08-06 06:33:20

标签: sas

来自this link我学习了如何阅读多个txt文件。

问题:是否可以创建一个宏变量来输入文件夹中的所有txt文件。说C:\ Users \ Desktop \(给定所有文件都是txt格式,名称为datasetyyyymmdd。)

我有dataset20150101.txt - dataset20150806.txt,我不想手动输入数据线中的所有链接。

data whole2;
    infile datalines;
    length fil2read $256;
    input fil2read $;
    infile dummy filevar=fil2read end=done dsd;
    do while (not done);
        input name$ value1 value2;
        output;
    end;
    datalines;
C:\Users\Desktop\dataset20150501.txt
C:\Users\Desktop\dataset20150502.txt
run;

1 个答案:

答案 0 :(得分:3)

询问操作系统存在哪些文件:

filename DataIn pipe "dir C:\Users\Desktop\dataset*.txt /S /B";   

data whole2;
    infile DataIn truncover;
    length fil2read $256;
    input fil2read $;
    infile dummy filevar=fil2read end=done dsd;
    do while (not done);
        input name$ value1 value2;
        output;
    end;
run;

Bare选项/B会删除不需要的信息,例如上次访问日期。

我添加了子文件夹选项/S,因为然后dir语句返回完整的路径名。这样,它还会读取dataset*.txt子文件夹中的C:\Users\Desktop\个文件。如果这不适合您,请删除/S并使用

    path2Read = "dir C:\Users\Desktop\"||fil2read;