12-14-2016 10:22 AM
I am trying to keep only the last 7 days output and the input files used or created by a SAS process.
and i am using the below mentioned command, but i see that all the output files created and the Input files for the SAS process.
x "cd &Inpth.";
x "find &Inpth. -type f -mtime +7 -print | xargs rm";
12-14-2016 10:31 AM
Well, you haven't mentioned what any of the macro variables are? As for this kind of process when you are determining file date, it is not as straight forward, changing your system clock for instance is one simple way to mess this up. Generally I would ask IT to setup some sort of file clean on a regular basis.
As for your code, the find dos command searches in a file for text, how are you intending using that for file dates?
If they are SAS files, then you should be able to pull dates of files from the SAS metadata - sashelp for instance. If not then as simple dir can give you the info:
filename tmp pipe 'dir "<path>\*.*"'; data dirlist; length buff $200; infile tmp; input buff $; run;
Do be aware that if run on various machines/os's you would need to handle that, and different date formats etc. Basically its more complicated than you think, so let IT use their tools (or if there are SAS tools you can use for example session cleaners are present in some SAS products).
12-14-2016 10:37 AM
Have you counter-checked by logging on to the server, changing to the directory and do a ls -l on the files?