2017-09-25 19 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; 
相關問題