【发布时间】:2015-06-12 12:26:45
【问题描述】:
不能在 SAS EG 中使用 Xcommands。无权访问 SAS 管理控制台。如何在不使用 Xcommands 的情况下获取目录中的文件列表?
尝试了 DINFO,但只能获得 1 条信息。需要选定目录中所有文件的列表。我在这里遗漏了什么吗?
data a;
rc=filename("mydir", c:\");
put "rc = 0 if the directory exists: " rc=;
did=dopen("mydir");
put did=;
numopts=doptnum(did);
put numopts=;
do i = 1 to numopts;
optname = doptname(did,i);
put i= optname=;
optval=dinfo(did,optname);
put optval=;
output;
end;
run;
【问题讨论】:
-
你应该可以使用可怕的
dread()功能。类似于doptname(),但循环遍历目录的成员。 -
干杯杰夫。尽管没有许多文件变量,但这很有效。只需使用 1 ro 1000 或 filename = blank 即可结束循环。
-
这是我使用的代码。我把其他东西放在那里,以防有人能建议我如何获取文件数量并在循环控制中使用它。数据文件名; rc=filename("mydir", "c:\"); put "rc = 0 如果目录存在:" rc=;没有=dopen(“我的目录”);把做=; numopts=doptnum(did);把 numopts=; do i = 1 to 1000 /*numopts*/; optname = doptname(did,i);把 i= optname=; optval=dinfo(did,optname);把 optval=;文件名=恐惧(做,我);把文件名=;如果文件名 = '' 那么 i=1000; /* 结束循环。 /否则输出; / 写出文件名 */ end;运行;
-
仅供参考,
XCMD在 EG 中是可能的;'只是服务器默认设置为不允许它(options noxcmd)。如果您的服务器管理员愿意,可以启用它。
标签: sas enterprise-guide