I'm using a macro I found online to create Windows directories on my local disk. It's failing if the directory name contains hyphens. Can explain what is going on? Here's the problematic code (source) %MACRO makeDirectory(DIR=);
%LET COUNT=0;
%LET DLM=\;
%IF %SUBSTR(&DIR,%LENGTH(&DIR),1) NE &DLM %THEN %DO;
%LET DIR=&DIR&DLM;
%END;
%DO J=1 %TO %LENGTH(&DIR);
%IF %SUBSTR(&DIR,&J,1)=&DLM %THEN %DO;
%LET COUNT=%EVAL(&COUNT+1);
%END;
%END;
%LET DRIVE=%SUBSTR(&DIR,1,3);
%LET LEVEL=&DRIVE;
%DO I=2 %TO &COUNT;
%LET WORD=%SCAN(&DIR,&I,&DLM);
%LET LNEW=&LEVEL&WORD&DLM;
data _null_;
rc=filename('newdir',"&lnew");
c=dopen('newdir');
if c=0 then new=dcreate("&word","&level");
run;
%LET LEVEL=&LNEW;
%END;
%MEND; /* this will fail */ %makeDirectory(Dir=C:\TEMP\WITH-HYPHENS); Here's the error from the log: SYMBOLGEN: Macro variable DIR resolves to C:\TEMP\WITH-HYPHEN\
SYMBOLGEN: Macro variable J resolves to 13
ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric
operand is required. The condition was: %SUBSTR(&DIR,&J,1)=&DLM
SYMBOLGEN: Macro variable DLM resolves to \
ERROR: The macro MAKEDIRECTORY will stop executing. Thanks!
... View more