原文載點: http://support.sas.com/resources/papers/proceedings10/092-2010.pdf
在一些很特殊的情況下,我們需要大量執行不同的 SAS 程式。若一個一個從 SAS 裡面開啟再執行,不但相當消耗時間,也不沒有太大的效率。Helen Sun 和 Cindy Wong 在 SAS Global Forum 2010 發表了一個簡易的巨集程式,讓 SAS 使用者在 PC 的視窗系統底下可以輕鬆批次地將同一個目錄底下的 SAS 程式碼給一次執行完畢。
假設有一堆 SAS 程式被儲存在 C:\temp 的目錄底下,如下圖所示:%MACRO BATCH(dir=);/*read in file names*/FILENAME dirfile PIPE "dir ""&dir"" /b" LRECL=200;DATA in;INFILE dirfile LENGTH=len;INPUT char $varying200. len;RUN;/*only choose sas program names*/DATA sasprg;SET in;IF INDEX(char,'.sas ');RUN;/*create statement*/DATA line;LENGTH name $200;SET sasprg;name="%include '"||trim(char)||"';";DROP char;RUN;/*write out to a file*/FILENAME fileref "&dir.batch.sas";DATA _null_;SET line;FILE fileref;PUT name;RUN;FILENAME fileref clear;%MEND;
然後再把路徑輸進 %BATCH 裡面:
%BATCH(dir=C:\temp\);接著就會在這個路徑看到一個名為 batch.sas 的程式,打開來一看如下所示:
CONTACT INFORMATION
Helen Sun
SAS Programmer
hsun@robarts.ca
Robarts Clinical Trials
Robarts Research Institute
P.O. Box 5015, 100 Perth Drive
London, Ontario, Canada
N6A 5K8
Tel: 519-931-5700x24254
Fax: 519-931-5284
www.robartsclinicaltrials.ca
沒有留言:
張貼留言
要問問題的人請在文章下方的intensedebate欄位留言,請勿使用blogger預設的意見表單。今後用blogger意見表單留言的人我就不回應了。