通过 sas 宏变量创建动态文件名

Create dynamic filenames via sas macro variables

我正在通过存储过程创建动态网络文件。输出文件是通过 proc 流生成的。但是我在创建动态文件路径时做错了。 以下简化示例有效:

FILENAME hello 'D:\test\hello.html';
proc stream outfile=hello; begin
    hello world
;;;;

然而,当我尝试使用 do 循环动态创建文件时,我根本没有得到任何输出。 (也没有错误)

%do i=1 %to 3;
    %let outputFileName = D:\test\&i%str(.html);
    FILENAME hello '&outputFileName';
    proc stream outfile=hello;   begin
        Hello world
    ;;;;
%end;

如果我输入 outputFileName 变量,我可以看到我的路径是它应该的样子。

有什么想法吗?

宏变量引用不会在单引号内解析。使用双引号:

FILENAME hello "&outputFileName";