2017-09-25 57 views
-1

如何获取用于存储在目录中的所有文件的.sas文件或文件属性的用户详细信息?我正在尝试获取所有可能的属性,如:修改日期,修改者,创建者,宏。如何获取像在sas中创建的用户属性

data dir_meta(drop=rc file_ref fid); 

%let directory_ref = %sysfunc(filename(dirref,&dir)); 
%let dir_id=%sysfunc(dopen(&dirref)); 

if &dir_id eq 0 then do; 
put _error_=1; 
return; 
end; 

%let _count=%sysfunc(dnum(&dir_id); 

do i=1 to &_count; 
%let dir_name = %sysfunc(dread(&dir_id,&i); 
    if upcase(scan(&dir_name,-1,.)) = upcase(&extn) then do; 
     put &dir\&dir_name; 
     file_ref='temp'; 
     file_name=%sysfunc(filename(file_ref,"&dir\&&dir_name")); 
     fid=%sysfunc(fopen(file_ref)); 
     create_date=%sysfunc(finfo(&fid,Create Time)); 
     Modified_date=%sysfunc(finfo(&fid,Last Modified)); 
     output; 
     rc=fclose(fid); 
    end; 
end; 
%let rc_dir=%sysfunc(dclose(dir_id); 
run; 
+0

请解释您在使用该代码时遇到的问题。它已经看起来像是你将数据步逻辑与宏逻辑混合在一起,这让我很惊讶地听到这种方法可行。 – user2877959

+0

proc内容可能有帮助吗? http://documentation.sas.com/?docsetId=proc&docsetVersion=9.4&docsetTarget=p06aw5wr49vg04n1n0iqzalvqss0.htm&locale=en – pinegulf

+0

这很好。问题是什么?如果您需要帮助,您需要提供更多详细信息,但对于初学者,FINO在其可提供的信息方面有限,因此我认为它不会提供您要查找的内容:http://support.sas.com/文档/ CDL/EN/hostwin/69955/HTML /默认/ viewer.htm#n0vegoaf5t6s31n1wu1qok4swqye.htm – Reeza

回答

0

Sweta,

假设你是在最近版本的Windows使用SAS和会话已经允许X命令,那么你可以管一个PowerShell命令的数据步的结果看什么你想要的信息。

在PowerShell中使用此命令查看各种信息有关,可一旦你决定了成员选择数据的步骤可以阅读PowerShell的输出选择

PS > DIR | GET-MEMBER 

的文件。例如:

filename fileinfo pipe 'powershell -command "dir | select Fullname, Length, @{E={$_.LastWriteTime.ToString(''yyyy-MM-ddTHH:mm:ss.ffffffzzz'')}} | convertTo-csv"'; 
* powershell datetime formatting tips: https://technet.microsoft.com/en-us/library/ee692801.aspx?f=255&MSPPError=-2147217396; 

data mydata; 
    infile fileinfo missover firstobs=4 dsd dlm=','; 
    attrib 
    filename length=$250 
    size length=8 format=comma12. 
    lastwrite length=8 format=datetime20. informat=E8601DZ32.6 
    ; 
    input filename size lastwrite; 
run;