SAS列出所有文件名问题(授权某些文件,但不是全部文件)

SAS列出所有文件名问题(授权某些文件,但不是全部文件),sas,wrds-compusat,wrds,Sas,Wrds Compusat,Wrds,我正在尝试使用以下代码列出文件夹中带有前缀的所有文件名,并使用这些文件名调用名为CALCU的函数: proc contents data=&libref.._all_ noprint out=contents; run; data _null_; set contents; by memname; if first.memname ; if upcase(memname) =: %upcase("&prefix"); call ex

我正在尝试使用以下代码列出文件夹中带有前缀的所有文件名,并使用这些文件名调用名为CALCU的函数:

  proc contents data=&libref.._all_ noprint out=contents; run;
  data _null_;
    set contents;
    by memname;
    if first.memname ;
    if upcase(memname) =: %upcase("&prefix");
    call execute(cats('%nrstr(%CALCU)(',memname,')'));
  run;
当我拥有对目录中所有文件的完全授权访问权限时,代码工作正常。但现在我发现,我实际上没有访问某些带有特定前缀的文件的权限(幸运的是,我实际上不需要那些我无权访问的文件)

然而,SAS只是不断抛出错误,如

ERROR: User does not have appropriate authorization level for file
       TAQ_CT.CTM_20120222.DATA.
即使这不是我想要的文件

我想知道如何跳过目录中的一些文件

我已尝试删除除以下代码行以外的所有内容:

  proc contents data=&libref.._all_ noprint out=contents; run;

尽管如此,当我无法访问所有文件时,似乎我甚至无法正确阅读内容(SAS只是不断抛出我无法访问的文件上的错误)

我没有办法对此进行测试,但请尝试
SASHELP.VMEMBER
而不是
PROC CONTENTS

data _null_;
    set SASHELP.VMEMBER(where=(libname=upcase("&libref") and memtype = "DATA"));

    if upcase(memname) =: %upcase("&prefix");
    call execute(cats('%nrstr(%CALCU)(',memname,')'));
run;

这是一个列出目录中所有SAS文件的系统视图。这样,您只能尝试访问所需的文件。

它显示
错误:文件SASUSER.VMEMBER.DATA不存在。
现在
SASHELP.VMEMBER
不是
SASUSER
。哇。抱歉,用户vs帮助