In a previous article, we discussed how to use a Powershell job to delete files over a certain age.
But what if if you want to do it using straight “pure” DOS .bat or .cmd file? The following shows you how it’s done:
REM Cleanup all files more than 7 days old e: cd E:\BizTalk\App\Backup forfiles /S /M *.* /D -7 /C "cmd /c del @path"
NOTE however, UNC Paths are not supported. You CANNOT even specify UNC name to a remote server in the PATH parameter.
REM Cleanup all files more than 14 days old forfiles /P \\server\BizTalk\App|Backup /S /M *.* /D -14 /C "cmd /c del @path"
The “forfiles” command is documented here, and
briefly recapped below:.
It selects and executes any command on a file or set of files.
- With forfiles, you can run a command on or pass arguments to multiple files. For example, you could run the type command on all files in a tree with the .txt file name extension. Or you could execute every batch file (*.bat) on drive C, with the file name “Myinput.txt” as the first argument.
- With forfiles, you can do any of the following:
- Select files by an absolute date or a relative date by using the /d parameter.
- Build an archive tree of files by using variables such as @FSIZE and @FDATE.
- Differentiate files from directories by using the @ISDIR variable.
- Include special characters in the command line by using the hexadecimal code for the character, in 0xHH format (for example, 0x09 for a tab).