DATA Step, Macro, Functions and more

Need help with a simple macro

Posts: 32

Need help with a simple macro

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);


%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.


Super User
Posts: 6,785

Re: Need help with a simple macro

Posted in reply to sandyming

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.

Posts: 32

Re: Need help with a simple macro

Posted in reply to Astounding

Thanks, Astounding.

I made a mistake at one place, missed a parenthesis Smiley Sad, %fmt(inlib1=%str(c:\temp1\p_v1), inlib2=%str(c:\temp1\p_v2);

Ask a Question
Discussion stats
  • 2 replies
  • 2 in conversation