I am going to analyze a batch of SAS program file and I am stucked in getting the last modified time of program files. I have thought about X command but it was too inefficient.
I just find when I use infile statement:
data test;
infile 'D:\test.txt' truncover;
input ;
run;
Log shows the last modified time:
NOTE: The infile 'D:\test.txt' is:
Filename=D:\test.txt,
RECFM=V,LRECL=32767,File Size (bytes)=7,
Last Modified=2021/1/26 15:25:48,
Create Time=2021/1/26 15:25:42
As you can see, log window shows the infomation of file as a NOTE. However, my wish output is a variable filled with Last Modified Time.
Is there some option to get it while using `infile` statement? Surely, Other efficient ways are welcomed, too.
Check next code:
filename fname 'D:\test.txt' truncover;
data _null_;
fid = fopen('fname');
if fid then do;
fattr = finfo(fid,'Last Modified');
lm = input(fattr,datetime18.); /* lm = Last Modified datetime */
/* add any other required code */
end;
else put '*** Cannot open the file ***';
run;
Check next code:
filename fname 'D:\test.txt' truncover;
data _null_;
fid = fopen('fname');
if fid then do;
fattr = finfo(fid,'Last Modified');
lm = input(fattr,datetime18.); /* lm = Last Modified datetime */
/* add any other required code */
end;
else put '*** Cannot open the file ***';
run;
You could use something like:
filename chk "YOUR_FILE";
data moddates;
set sashelp.vextfl;
where upcase(fileref) = 'CHK';
keep xpath modate;
run;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.