I'm trying to write a macro to loop thru several similarly named directories and run a Proc Contents on the file in that directory and I am certainly no macro maven. The directories are named C:\temp\SAS\FY89 to C:\temp\SAS\FY00 where FY is fiscal year. Each directory contains one SAS data file named FYXX where XX is the last two digits of the year. Here's what I have so far but it immediately chokes on the newvar=%put(fy, 3.); line. What I'm trying to do there is convert the numeric variable fy to charaacter variable newvar. Anyone know why that doesn't work? The error message in the log syas
WARNING: Apparent symbolic reference NEWVAR not resolved
%Macro contents;
%do i=1 %to 11;
%Let fy =i + 88;
newvar=%put(fy, 3.);
%if %length(newvar) > 2 %then newvar = %substr(newvar,2,2);
%Let fpath = /mdr_pub_misc/sidr/fy&newvar;
libname sidr "&fpath";
Title "Contents of SIDR FY&newvar";
proc contents data=sidr.fy&newvar; run;
%end;
%let dir1=%str(C:\temp\SAS);
%let pgmname=%str(sidr_16);
%let date=_&sysdate;
%let time=_&systime;
%let ext1=%str(log);
%let break=%str(-);
%let final1=&dir1&pgmname&date&time..&ext1;
%put &final1;
proc printto log="&final1";
run; quit;
%Mend;
%contents;
Thanks,
Brian
... View more