The SAS Output Delivery System and reporting techniques

Zip all files in a directroy using ODS

Reply
Frequent Contributor
Posts: 82

Zip all files in a directroy using ODS

I tried this program to zip all xls files in a /home/ directroy to create a report.zip, but it did not recognize the wildcard. What is a good way to do this?

ods package(ProdOutput) open nopf;

ods package(ProdOutput)

    add file="/home/*.xls";

ods package(ProdOutput)

    publish archive       

       properties

      (archive_name= 

                  'report.zip'                 

       archive_path="/home/report/");

ods package(ProdOutput) close;

Esteemed Advisor
Esteemed Advisor
Posts: 7,203

Re: Zip all files in a directroy using ODS

hi,

Do some sort of directory listing:

filename dirlist pipe "dir 'somewhere' /b";

data dirlist;

     length buffer $2000;

     infile dirlist;

     input buffer $;

run;

Next use that dataset to generate your code:

/* open package here */

data _null_;

     set dirlist;

     call execute('ods package(ProdOutput) add file="'||strip(buffer)||'";');

run;

/* close package here */

Note I am assuming of course that all files in the specified directory are to be included.

SAS Employee
Posts: 88

Re: Zip all files in a directroy using ODS

You should be able to modify the sample below to look for the extension .XLS rather than the SAS data set.

http://support.sas.com/kb/45256

%if &ext=XLS  %then %do;

         %let cnt=%eval(&cnt+1);

         %let name&cnt=&fname..&ext;

%end;

http://support.sas.com/kb/45256

Ask a Question
Discussion stats
  • 2 replies
  • 345 views
  • 6 likes
  • 3 in conversation