Are you really trying to delete data -or even kill sessions- of users that have an *active* EG session?
Why on earth would you do this?
Try this:
/*MACRO TO GET ALL FILE NAMES AND DETAILS WITHIN A DIRECTORY*/
%MACRO GET_FILE_NAMES(FILE_DIR ,COMMON_FILE_NAME ,FILE_FORMAT ,DATA_OUT);
FILENAME LS PIPE "dir &FILE_DIR.&COMMON_FILE_NAME.*.&FILE_FORMAT.";
DATA FILE_NAMES (KEEP=LIST_FILE);
INFILE LS PAD TRUNCOVER EXPANDTABS ;
INPUT FILE_NAMES $10000.;
LIST_FILE = COMPRESS('"'||FILE_NAMES||'"');
RUN;
PROC SQL; SELECT LIST_FILE AS LIST_FILE INTO: LIST_FILE_1 - FROM FILE_NAMES; QUIT;
PROC SQL; SELECT COUNT(*) AS NUM_OF_SEARCHES INTO: NUM_OF_SEARCHES FROM FILE_NAMES; QUIT;
%DO Z = 1 %TO &NUM_OF_SEARCHES.;
DATA RAW_WANT;
FILENAME LISA &&LIST_FILE_&Z..;
INFILE LISA TRUNCOVER ;
FORMAT FILE_NAME $20000.;
FILE_NAME = &&LIST_FILE_&Z..;
FLIE_SIZE = FINFO(FOPEN('LISA') ,'FILE SIZE (BYTES)');
FORMAT MOD_DATE DATETIME.;
MOD_DATE = INPUT(FINFO(FOPEN('LISA') ,'LAST MODIFIED'), DATETIME.);
RIGHTS = FINFO(FOPEN('LISA') ,'ACCESS PERMISSION');
OWNER = FINFO(FOPEN('LISA') ,'OWNER NAME');
RUN;
PROC APPEND DATA = RAW_WANT BASE = WANT_1 FORCE; RUN;
%END;
DATA &DATA_OUT.; SET WANT_1; RUN;
PROC DATASETS; DELETE WANT_1 RAW_WANT FILE_NAMES; RUN;
%MEND GET_FILE_NAMES;
/*INPUT PARAMETERS HERE*/
%GET_FILE_NAMES (FILE_DIR = \Users\abc\Desktop\ /* SPECIFY THE DIRECTORY LOCATION HERE*/
, COMMON_FILE_NAME = HAVE_NAME /* FILE COMMON NAME, YOU CAN PUT "*" HERE TO SELECT ALL FILE NAMES*/
, FILE_FORMAT = txt /* FILE FORMAT, YOU CAN PUT "*" HERE TO SELECT ALL FILE FORMATS WITHIN THE DIRECTORY*/
, DATA_OUT = WANT);
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.