execute.sas
来自「缺失数据的利器」· SAS 代码 · 共 42 行
SAS
42 行
%macro execute(prog= );
%let lib = %sysget(SRCLIB);
%if (&sysscp eq WIN) %then %do;
%if (%bquote(&lib) eq ) %then %do;
%let lib = %sysget(SASROOT);
%if (%qsubstr(&lib, 1, 1) eq %str(%")) %then
%let lib = %qsubstr(&lib, 2, %length(&lib)-2);
%let lib = &lib\srclib;
%end;
%else %do;
%if (%qsubstr(&lib, 1, 1) eq %str(%")) %then
%let lib = %qsubstr(&lib, 2, %length(&lib)-2);
%end;
%let program = &lib\&prog;
%if (%index(&program, %str( )) ne 0) %then
%let program = %str(%")&program%str(%");
%let setup = &path..set;
%if (%index(&setup, %str( )) ne 0) %then
%let setup = %str(%")&setup%str(%");
options noxwait;
data _null_;
%if (&mode eq ) %then
call system("&program &setup /sas")%str(;);
%else
call system("&program &setup /&mode /sas")%str(;);
run;
%end;
%else %do;
%if (%bquote(&lib) eq ) %then
%let lib = %sysget(SASROOT)/srclib;
%if (&mode eq and &sysenv eq BACK) %then %let mode = batch;
data _null_;
%if (&mode eq ) %then
call system("&lib/&prog &path..set /sas")%str(;);
%else
call system("&lib/&prog &path..set /&mode /sas")%str(;);
run;
%end;
%if (&sysrc gt 1) %then %let msg = Abnormal termination of &prog.. Check log.;
%mend execute;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?