%let filepath=C://;* Filepath to pick up the files;
%macro extract(dir=, ext=);
%let filrf=mydir;
%let rc=%sysfunc(filename(filrf,&dir));
%let did=%sysfunc(dopen(&filrf));
%let memcnt=%sysfunc(dnum(&did));
%do i = 1 %to &memcnt;
%let memname = %qsysfunc(dread(&did, &i));
%let fid = %sysfunc(mopen(&did, &memname));
%let extname=%qscan(%qsysfunc(dread(&did,&i)),-1,.); /* Returns the extension from each file */
/* Returns the file name portion */
%let name1=%qscan(%qsysfunc(dread(&did,&i)),1,.); /* filename with yymmdd */
%let name2=%substr(&name1,1,(%length(&name1)-6)); /* filename without yymmdd */
/* Checks to see if file contains an extension */
%if %qupcase(%qsysfunc(dread(&did,&i))) ne %qupcase(&ext) %then %do;
%if (%qupcase(&extname) eq %qupcase(&ext)) and ("&name1" ne "") %then %do;
/* if condition TRUE then execute SAS statement......*/
%put user;
/* export filenames in dataset */
data a;
format file $20. file2 $20.;
no = &i.;
file = "&name1.";
file2 = "&memname.";
run;
data a_all;
%if &i = 1 %then %do;
set a;
%end;
%else %do;
set a_all a;
%end;
run;
%end;
%end;
%end;
%let rc=%sysfunc(dclose(&did));
%mend;
%extract(dir=&filepath, ext=/file extension/)
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning and boost your career prospects.