FAQ:在SAS中如何获得当前正在运行的批作业或者交互式作业的文件名?

本文介绍在SAS环境中获取当前运行程序文件名的方法,包括批处理和交互式会话的不同方式,并展示了如何利用SAS9提供的新环境变量简化这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 问:在SAS中如何获得当前正在运行的批作业或者交互式作业的文件名?
 答:
 如果你运行一个批作业,你可在当前程序中写入如下代码

  %put The current program is %sysfunc(getoption(sysin));
 
 如果你交互式运行作业,那么你可以使用下面代码来获得当前程序的文件名

/*注: 如果多个编辑窗口被打开,则需要注释掉 STOP语句,  SASHELP.VEXTFL 为每一个打开的编辑窗口都建立一个唯一的文件引用 ,删除STOP语句可以让我们接收到最后被打开的文件 */

%macro pname;
%global pgmname;
%let pgmname=;

data _null_;
set sashelp.vextfl;
if (substr(fileref,1,3)='_LN' or substr
(fileref,1,3)='#LN' or substr(fileref,1,3)='SYS') and
index(upcase(xpath),'.SAS')>0 then do;
call symput("pgmname",trim(xpath));
stop;
end;
run;
%mend pname;

%pname;

%put pgmname=&pgmname;

上面代码在SAS9中不是必须的,在SAS9中为增强型编辑器提供了一个新的环境变量,命名为 SAS_EXECFILENAME,你可以在你的当前程序中使用下面代码来接收当前运行的程序名:

%put %sysget(SAS_EXECFILENAME);

同时,与之相应的还有一个命名为 SAS_EXECFILEPATH 的环境变量用于保存当前运行程序的全路径(含有文件名)
%put %sysget(SAS_EXECFILEPATH);

原文来自:http://support.sas.com/faq/042/FAQ04296.html 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值