SAS 脚本通过 EG 运行,但在 linux 中失败

SAS script works via EG, but fails in linux

我正在尝试遍历集合并获取文件的 path。然后,我想打开文件并从中取出另一组文件。

我的问题是我的脚本 works 通过 Enterprise Guide 执行时没有任何问题,但如果通过命令行执行则 fails

WARNING: Apparent invocation of macro GET_DATA not resolved.

似乎我的 path 变量没有设置,当我通过命令行 运行 时我的宏没有被执行。

data _null_;
    set files_to_parse; 
    count + 1;
    call execute('%get_data('||path||', '||count||')');
run;

这里我试图将一个excel实例化为一个库

%macro get_data(path, cnt);
/* Get current iteration of excel spreadsheet */
libname xl XLSX "&path.";
%mend get_data;

错误是%get_data没有编译,不是没有解析路径。

很难用您提供给我们的信息说出原因,但由于您看到 EG 与命令行中的差异 运行,我怀疑您要么将宏编译为 autoexec 流程的一部分在 EG 中,或者您有一个未通过命令行配置文件正确设置的自动调用宏库。如果您不知道这些是什么意思,请咨询您的 SAS 管理员。

确保您在尝试使用宏之前已经定义了它。也许使用 EG,您的程序可以运行,因为您之前已经编译了宏。