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);
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.