原文載點: 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意見表單留言的人我就不回應了。