Delete Files which are older then a specific duration

As a part of system/ storage management sometimes we need to delete old files. Ah! why bother coz this is such an easy task. If you need to delete all or a few files from a specific folder, a combination of key strokes can do the trick... But, what if...

1) This has to be done periodically.
2) Not only one folder but many.

Ofcourse, the traditional method could be followed and the files could be deleted manually but on the cost of your valuable time and efforts. To overcome this issue, Microsoft® Windows has included 'Forfiles ' in its windows 2000/NT resource kit. This utility is very helpful in searching and then deleting files which are older then a specific duration. The Usage/ syntax is mentioned below. If this task has to be performed periodically, just save the script with a .bat extension and schedule it using the Windows Scheduled Tasks applet. And, you are done! :)

Syntax
FORFILES [-pPath] [-s] [-dDate] [-mMask] [-cCommand]

key
-Path : Path to search default=current folder

-s : Recurse into sub-folders

-Date : This can be
+DDMMYY to select files newer than a given date
(filedate >=DDMMYY) or
-DDMMYY to select files older than a given date
(filedate <=DDMMYY) or +DD to select files newer than DD days ago or -DD to select files older than DD days ago -Mask : Search mask (wildcards allowed) default=*.* -Command : Command to execute on each file. default="CMD /C Echo @FILE" -v : Verbose report The following variables can be used in -cCommand (must be upper case) @FILE, @FNAME_WITHOUT_EXT, @EXT, @PATH, @RELPATH, @ISDIR, @FSIZE, @FDATE, @FTIME To ECHO Hex characters in the Command use: 0xHH Examples: To find every text file on the C: drive FORFILES -pC:\ -s -m*.TXT -c"CMD /C Echo @FILE is a text file" To show the path of every HTML file on the C: drive FORFILES -pC:\ -s -m*.HTML -c"CMD /C Echo @RELPATH is the location of @FILE" List every folder on the C: drive FORFILES -pC:\ -s -m*. -c"CMD /C if @ISDIR==TRUE echo @FILE is a folder" For every file on the C: drive list the file extension in double quotes FORFILES -pc:\ -s -m*.* -c"CMD /c echo extension of @FILE is 0x22@EXT0x22" List every file on the C: drive last modified over 100 days ago FORFILES -pc:\ -s -m*.* -d-100 -c"CMD /C Echo @FILE : date >= 100 days"

Find files last modified before 01-Jan-1995
FORFILES -pc:\ -s -m*.* -d-010195 -c"CMD /C Echo @FILE is quite old!"

note:
'0x22' is hex 22 - the double quote character - put these around any long filenames.
Version 1.0 of FORFILES will only search for files newer than a specified date.
Version 1.1 (described above) can search for file dates Newer or Older then a specified date.

version 1.1 can be downloaded from Microsoft's ftp site ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/

No comments: