程序运行每一步的时间都会在log中显示,但如果有一个大型的宏程序,对宏程序又有多个循环,程序运行了很久
那么怎么知道系统运行的全部时间呢?
我没有找到SAS中表示当前系统时间(不是日期)的自动宏变量
但可以调用data步函数time获取当取系统时间
测试代码如下:
%macro xunhuan;
%let start=%sysfunc(time());
data a;
do i=1 to 100000000;
output;
end;
run;
%let end=%sysfunc(time());
%let duration=%sysevalf((&end-&start)/60);
data _null_;
file print;
put "程序运行时间为 &duration 分钟";
run;
%mend;
%xunhuan;
SAS 可以利用X命令调用dos命令
而下面的程序就是在SAS中自动关机的命令
当然也可以设置定时关机
当你晚上想run一个大型程序,在确定程序无误的前提下,不想等待电脑完成就去睡觉,就可以在程序最后添加一个
关机的代码,测试以下程序要慎重,确保自己的重要资料已经保存
x "shutdown -s -t 10";
x "shutdown -s -f -t 10"; /*程序慎用,自动关机,会损失未保存的文件*/
/*-s表示关机,-r表示重启,-f表示强制关闭应用程序,-t 10表示10秒提示时间*/