我可以将SAS列表目的地重定向到日志吗?
或者,我可以将列表目标重定向到外部文件并在SAS窗口环境中保持打开状态吗?我知道我可以使用PROC PRINTTO将其写入外部文件,但这会阻止输出也出现在窗口中。
答案 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;