Recently had to perform an update to some VBS Scripts I wrote in the past to archive and delete logs. (Previous post: http://www.lifeasbob.com/2008/02/26/SQLServerLogManagement.aspx) The scripts I've used in the past automatically move all files in a specific directory to an archive directory, and then delete the archived directories that are older than 30 days. This was nice, but most of the directory names and the number of days were hard coded in the script, in addition it did not use wild cards (*.txt) to move the files, so it was all files or nothing.
I updated the VBS Scripts to take wild cards and directories (both source and target) as parameters. The annoying thing is I implement these jobs via windows task scheduler (no sql agent on the box), and in order to call the vb scripts with parameters I ended up using batch files as I had multiple iterations of different wildcards and directories, guess we haven't come very far after all!
Anyway you may find this stuff useful for things where someone creates a process which generates lots and lots of files of any type. In my case these were about 10 files per day, exported to excel, and we needed to archive them to different sub-directories based on the wild card. What you end up with looks like this in Task Scheduler and File exploder...er, i mean explorer...
I've uploaded the examples of the vbs and bat files below, all have been renamed to have a .txt extension, so rename them after download.
Archive_Daily_logs_bat.txt (.6 KB)
Archive_Daily_Logs_vbs.txt (4.95 KB)
Archive_Delete_Dirs_bat.txt (.36 KB)
Archive_Delete_Dirs_vbs.txt (.75 KB)
For the powershell Evangelist's, yes this can all be done in powershell, but since I only have powershell installed on 1 of 170 servers, it will have to wait. Eventually i'm sure we will push powershell to 170 servers. Soon i'll be creating a new powershell category and begin uploading and converting all these.