我可以将SAS列表目标重定向到日志吗?

时间:2014-03-31 13:13:00

标签: sas

我可以将SAS列表目的地重定向到日志吗?

或者,我可以将列表目标重定向到外部文件在SAS窗口环境中保持打开状态吗?我知道我可以使用PROC PRINTTO将其写入外部文件,但这会阻止输出也出现在窗口中。

3 个答案:

答案 0 :(得分:0)

这不仅仅是一个简单的例子:

ods listing file="myfile.txt";

...如果你还没有开启ods html

ods html;

这会将列表发送到指定的文件而不是“输出”窗口,任何过程的ODS结果都将转到“结果”窗口。

我知道这个设置实际上导致我在创建和命名图像的路径中出现问题,因为除了我的ODS目的地之外我没有意识到列表目的地是打开的,并且在我关闭列表之前我得到了重复的图像。 / p>

答案 1 :(得分:0)

我已经发现了-altprint选项,它完全符合我的要求。

答案 2 :(得分:0)

如果您希望在程序过程中动态更改输出/ lst以写入日志而不是单独的位置,则以下内容可能会有用。 (IE。这使LOG和LST都转到LOG)

它在BATCH(NODMS)模式下工作,但在交互式(DMS)模式下工作。

我不确定这是多么向后兼容,但它适用于9.4

/* redirect OUTPUT/LST to LOG by going to the SASHELP VEXTFL to get the log fileref (ONLY WORKS IN BATCH)*/
%let ISBATCH=%sysfunc(getoption(dms));
%if &ISBATCH = NODMS %then %do;
    PROC SQL outobs=1 noprint; SELECT t1.fileref INTO :LOG_FILEREF FROM SASHELP.VEXTFL t1 where t1.xpath like '%.log%'; QUIT;
    %put NOTE: LOG_FILEREF=&LOG_FILEREF;
    proc printto print=&LOG_FILEREF; run;
%end;