Delete Files Older Than N Days

Applicability:

SQL Server 2000: Tested

SQL Server 2005: Tested

SQL Server 2008: Tested

SQL Server 2008R2: Tested

SQL Server 2012: Not Tested

Credits:

Author: ChillyDBA

Date: 1 Dec 2011

Description

With the increasing need for security and the more secure default configurations delivered by Microsoft, the use of xp_cmdshell has not only become less desirable but also requires changing system security in a way that often contravenes IT Department guidelines.

For this reason, I eventually relented and created this small batch file to remove old files.

This now forms a core part of smaller VM SQL Server installations, where I use a combination of local SQL Native and VM-level backups, thus requiring a file cleanup of the SQL backup files.

I'm far from a batch file guru, so the functionality is limited, and the process will fail if there are no files to delete. Conversely, this can be a supplemental way of discovering that backups are not working.

Code

@Echo OFF

Echo Deleting files older than 4 days in the specified directory !

Echo ...........................................................

Set CurDir="C:\BackupCopies"

forfiles /p %CurDir% /S /D -4 /c "cmd /c del /Q /F /S "@file""

Echo You have successfully deleted the specified files in your directory and all subdirectories !

Exit