Solved

How do delete a folder after X days old

Posted on 2014-11-08
18
166 Views
Last Modified: 2014-11-09
Using Windows XP, I have the following batch file:

@echo off
cls

SET month=%DATE:~4,2%
SET day=%DATE:~7,2%
SET year=%DATE:~-4%
SET hour=%time:~0,2%
SET sec=%time:~3,2%
SET millis=%time:~6,2%


set folder=%year%_%month%%day%_%hour%%sec%

rem remove spaces from single digit values
set folder=%folder: =%

mkdir %folder%

:Done


This makes a folder based and named based on date and time.  This folder will later be populated for backup purposes.  Of course this can get rather large so I would like to also add to the batch to check for any folders X days old and then delete those folders.

Is this possible?

Thank you
0
Comment
Question by:thandel
  • 10
  • 5
  • 2
  • +1
18 Comments
 
LVL 23

Expert Comment

by:NVIT
ID: 40430193
Would this help? Change 15 to the DaysOld you want.

FORFILES /d -15 "cmd /c if @isdir==TRUE del /q /s /f @file"

Open in new window

0
 
LVL 23

Expert Comment

by:Eirman
ID: 40430209
Unless you have a particular reason to go the DOS route to delete older backups, it might make more sense to go for a backup program that keeps a certain number (that you specify .. e.g. 10) of backups and when it created a new backup, the oldest one is deleted.

This is just one example of such a program ...
http://www.kls-soft.com/klsbackup/
0
 

Author Comment

by:thandel
ID: 40430347
Thanks NewVillageIT... will this work for a folder/directory?
0
 

Author Comment

by:thandel
ID: 40430349
I'm getting an error that Forfiles is not a recognizable command.
0
 

Author Comment

by:thandel
ID: 40430361
I have Windows XP so  I don't think XP supports this command.
0
 
LVL 23

Expert Comment

by:NVIT
ID: 40430381
The @isdir==TRUE option checks for directories.

Before doing your real folders, test against an area that has some folders and files.

I haven't confirmed this but, it's in the Windows 2003 Resource Kit at http://www.microsoft.com/en-us/download/details.aspx?id=17657

XP versions here: http://www.petri.com/download_windows_xp_reskit_tools.htm
0
 

Author Comment

by:thandel
ID: 40431270
What is that 12MB installation going to do, install several .exe tool files?  Can you attach the forfile to this?  I only need that and not the other 12+MB supporting files.
0
 

Author Comment

by:thandel
ID: 40431277
OK never mind I installed the kit but forfiles was not part of the installation.
0
 
LVL 23

Assisted Solution

by:NVIT
NVIT earned 250 total points
ID: 40431293
Attached. Rename .txt to .exe
forfiles.txt
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 15

Expert Comment

by:ZabagaR
ID: 40431295
0
 

Author Comment

by:thandel
ID: 40431378
Thanks now getting an error invalid argument/option  with forfiles
0
 
LVL 15

Accepted Solution

by:
ZabagaR earned 250 total points
ID: 40431518
I already had a batch script to do this from a while back, I'll just repost below:
I keep 14 days and my path to search is C:\MyFolderPath

@echo off
setlocal

set DAYS_TO_KEEP=-14
set BACKUP_PATH=C:\MyFolderPath

forfiles /d %DAYS_TO_KEEP% /p "%BACKUP_PATH%" /c "cmd /c if @isdir==TRUE rd /s /q @path"
0
 
LVL 23

Expert Comment

by:NVIT
ID: 40431532
thandel,

Did you get it working? If not, can you post a sample code?
0
 

Author Comment

by:thandel
ID: 40431856
Getting an error that "P" can not be empty.  Here is my code:

@echo off
cls

SET month=%DATE:~4,2%
SET day=%DATE:~7,2%
SET year=%DATE:~-4%
SET hour=%time:~0,2%
SET sec=%time:~3,2%
SET millis=%time:~6,2%
SET DAYS_TO_KEEP=-1


set folder=%year%_%month%%day%_%hour%%sec%
rem remove spaces from single digit values
set folder=%folder: =%

set set BAKPath=C:\Documents and Settings\Todd\My Documents\DbBAK\%folder%

mkdir %folder%
cd %folder%

forfiles /d %DAYS_TO_KEEP% /p "%BAKpath%" /c "cmd /c if @isdir==TRUE rd /s /q @path"
0
 

Author Comment

by:thandel
ID: 40431857
Sorry cut n' paste error but didn't resolve the P variable error:

Should be: set BAKPath=C:\Documents and Settings\Todd\My Documents\DbBAK
0
 

Author Comment

by:thandel
ID: 40431858
I have it working... my set command had typos "set set".... working now!

Thanks
0
 

Author Comment

by:thandel
ID: 40431860
Does everyone agree that a 50/50 split is fair?    Ultimately used ZabagaR's forfile line
0
 
LVL 23

Expert Comment

by:NVIT
ID: 40431918
OK, thandle.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Can I legally transfer my OEM version of Windows to another PC?  (AKA - Can I put a new systemboard in my OEM PC?) Few of us are both IT and legal experts but we all have our own views of Microsoft's licensing rules and how they apply.  There are…
It is only natural that we all want our PCs to be in good working order, improved system performance, so that is exactly how programs are advertised to entice. They say things like:            •      PC crashes? Get registry cleaner to repair it!    …
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now