%macro getalldata(liblist = diff*diff1*diff2,out=);
data &out.;
set
%do i = 1 %to %sysfunc(countw(&liblist,*));
%let libnam = %scan(&liblist,&i,*);
%if %sysfunc(exist(&libnam.)) %then %do; &libnam. %end;
%end;;
run;
%mend getalldata;
%getalldata;
note:liblist里面放的宏变量用星号连接,如果换成其他的分隔符,countw()里面的符号需要换成对应的。
out定义输出的数据集名称。