检测它是在 SAS base 还是 SAS EG 中运行的 SAS 程序

Rud*_*den 5 sas

我正在编写一个需要不同信息的程序,无论是在 SAS base 还是 SAS EG 中运行。是否可以编写一个 SAS 程序来检测它是在 SAS EG 还是 SAS base 中运行?

kl7*_*l78 4

您可以使用全局宏变量_CLIENTAPP来测试您是否在EG中。

当您使用例如:

 data _null_;
  %put &_CLIENTAPP;
 run;
Run Code Online (Sandbox Code Playgroud)

在 EG 5.1 中,它返回“SAS Enterprise Guide”。

_CLIENTVERSION 返回适用于我的环境的 EG 版本,eG:'5.100.0.15040'

不确定这些全局变量是否存在于 Base 中(目前无法测试这一点),但如果它不起作用,您可以假设类似变量不存在其基数,例如:

 if "&_CLIENTAPP" = 'SAS Enterprise Guide' then
    *do eg stuff
 else
    *do base stuff
Run Code Online (Sandbox Code Playgroud)