I have many inlib1, inlib2 libraries. I would like to concatenate all the directory to one macro variable NAME.
%put &name; looks fine, but log has the following error message. Anyone has an idea how to fix this? Thanks.
%macro fmt(inlib1=, inlib2=);
%let name=%str("&inlib2","&inlib1",&name);
%mend;
%fmt(inlib1=%str(c:\temp1\p_v1), inlib2=%str(c:\temp1\p_v2));
Error Msg:
Some characters in the above value which were subject to macro quoting have been unquoted for printing.
Sandy
From the snippet of the code that you show, there is no need to apply quoting functions. All of the %str usage could be removed. There may be reasons you need it for other sections of your code, but you don't need it for the pieces you have shown.
It's curious as to where you are getting the error message. None of your code actually prints anything. So there must be more to this than you are showing. If you post more of what you are trying to accomplish, it may turn out that there are other methods that don't involve concatenating all the names, but that's another story.
Good luck.
Thanks, Astounding.
I made a mistake at one place, missed a parenthesis , %fmt(inlib1=%str(c:\temp1\p_v1), inlib2=%str(c:\temp1\p_v2);
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.