Hi, I tried your macro but I'm a little confused at the results. This is was old code with the PIPE When I create that 'num_files' macro variable, my result is 3, which is how many of my target files are in that directory. But when I run the code using your macro, num_files only resolves to 1? Here is the log 56 %dirtree(/rsmprod/landing/RMD/OpticNerveSftp/SFMC/recv/); MLOGIC(DIRTREE): Beginning execution. MLOGIC(DIRTREE): This macro was compiled from the autocall file /sasdata/cdm/mktgecicm/CLM_Operations/03SFMC/CJB_PRODUCTION_VALIDATION/sasautos/dirtree.sas MLOGIC(DIRTREE): Parameter DIRECTORY has value /rsmprod/landing/RMD/OpticNerveSftp/SFMC/recv/ MLOGIC(DIRTREE): Parameter OUT has value dirtree_list MLOGIC(DIRTREE): Parameter MAXDEPTH has value 1 MLOGIC(DIRTREE): %LOCAL FILEREF MLOGIC(DIRTREE): %LET (variable name is FILEREF) SYMBOLGEN: Macro variable DIRECTORY resolves to /rsmprod/landing/RMD/OpticNerveSftp/SFMC/recv/ MLOGIC(DIRTREE): %IF condition 0=%length(&directory) is FALSE SYMBOLGEN: Macro variable OUT resolves to dirtree_list NOTE: The data set WORK.DIRTREE_LIST has 1 observations and 7 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds MLOGIC(DIRTREE): %LET (variable name is OUT) SYMBOLGEN: Macro variable SYSLAST resolves to WORK.DIRTREE_LIST SYMBOLGEN: Macro variable OUT resolves to WORK.DIRTREE_LIST SYMBOLGEN: Macro variable OUT resolves to WORK.DIRTREE_LIST SYMBOLGEN: Macro variable SYSSCP resolves to LIN X64 SYMBOLGEN: Macro variable MAXDEPTH resolves to 1 SYMBOLGEN: Macro variable FILEREF resolves to __FL__ SYMBOLGEN: Macro variable FILEREF resolves to __FL__ SYMBOLGEN: Macro variable FILEREF resolves to __FL__ SYMBOLGEN: Macro variable FILEREF resolves to __FL__ NOTE: maxdepth=1 reached, not reading members of path=/rsmprod/landing/RMD/OpticNerveSftp/SFMC/recv//BKUP NOTE: The data set WORK.DIRTREE_LIST has been updated. There were 28 observations rewritten, 27 observations added and 0 observations deleted. NOTE: DATA statement used (Total process time): real time 0.04 seconds cpu time 0.03 seconds MLOGIC(DIRTREE): Ending execution. 57 58 DATA _NULL_; 59 call symput ('num_files',strip(_n_)); /* store the record number in a macro variable */ 60 RUN; NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column). 59:34 NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds SYMBOLGEN: Macro variable NUM_FILES resolves to 1
... View more