我有SAS存储过程从SAS数据集rr_udf_value中停止DBF文件并找到其大小(F_SIZE):
filename dbfout "/SASInside/DBF/myfile";
proc export
data=rr_udf_value
outfile=dbfout
dbms=dbf
replace;
run;
%let f_nm=/SASInside/DBF/myfile.DBF;
%let rc=%sysfunc(filename(onefile, &f_nm.));
%let fid=%sysfunc(fopen(&onefile));
%let F_SIZE=%sysfunc(finfo(&fid,File Size (bytes)));
%put &F_SIZE;
问题是STP日志中变量F_SIZE为空。但是如果执行STP后我运行命令
%let f_nm=/SASInside/DBF/myfile.DBF;
%let rc=%sysfunc(filename(onefile, &f_nm.));
%let fid=%sysfunc(fopen(&onefile));
%let F_SIZE=%sysfunc(finfo(&fid,File Size (bytes)));
%put FSIZE=&F_SIZE;
手动,即时可以:F_SIZE = 17342。
为什么在运行STP时未初始化F_SIZE,我该如何解决?
提前致谢!
答案 0 :(得分:2)
Get-ADComputer -Filter "ManagedBy -eq ""$item"""
在filename()
的环境中受到限制,默认设置为服务器环境。这是出于安全原因(因为OPTION NOXCMD
允许shell访问)。您可以通过启用XCMD
启用此功能,但您的服务器管理员(如果不是您)必须在服务器上启用它,而不是通常在本地会话中启用它。
有关详细信息,请参阅the SAS documentation on XCMD。